封裝一個增刪改查的函數:php
1 <?php 2 3 //編寫數據庫操做的魔術函數 4 function mysql_bind(){ 5 6 //首先咱們不知道外面會傳入多少個參數 7 //能夠用func_get_args()方法來獲取所有傳入參數,這個方法返回所有參數的數組 8 //和func_get_args()方法相對應的其實還有一個func_num_args()來獲取參數個數 9 $args = func_get_args(); 10 11 //經過使用array_shift方法,使傳入的第一個參數,後後面的參數分開,其實就是把sql語句,和 12 //後面傳入的值分開,使用了array_shift方法,能夠返回一個字符串,這個字符串就是sql語句 13 //後面剩下的數組就是要傳入的值 14 15 //sql語句 16 $sql = array_shift($args); 17 //從新複製給一個數組 18 $value = $args; 19 20 //替換$sql語句中的?,使用str_replace函數 21 $sql = str_replace("?","'%s'",$sql); 22 23 //把替換好的$sql語句,經過vsprintf函數,把值填入進去 24 25 $sql = vsprintf($sql,$value); 26 27 //截取$sql語句前面的關鍵字,其實就是select,insert,update,delete 28 $begin = substr($sql,0,6); //explode(" ",$sql)[0]; //這種寫法在PHP5.4以前是不支持的 29 30 $conn = mysql_connect("localhost","root","") or die(mysql_error()); 31 mysql_select_db("bbs",$conn); 32 mysql_query("set names 'utf8'"); 33 34 $result = mysql_query($sql) or die(mysql_error()); 35 36 if(strcasecmp($begin,"insert") == 0){ 37 //若是插入成功,那麼確定有一個最新的id,因此這個id不等於0的話,證實插入成功,不然失敗 38 return mysql_insert_id(); 39 } 40 else if(strcasecmp($begin,"update") == 0){ 41 //mysql_affected_rows()表示幾行受影響,成功,確定是大於0,不然失敗 42 return mysql_affected_rows(); 43 } 44 else if(strcasecmp($begin,"delete") == 0){ 45 //mysql_affected_rows()表示幾行受影響,成功,確定是大於0,不然失敗 46 return mysql_affected_rows(); 47 } 48 else{ 49 //爲了將查詢的內容返回回去 50 //首先申明一個空的數組,而後,這個空的數組,每次循環,都將$row賦值給他 51 //至關於這個數組就造成了一個二維數組 52 $arr = array(); 53 while($row=mysql_fetch_array($result)){ 54 $arr[] = $row; 55 // array_push($arr,$row); 56 } 57 return $arr; 58 } 59 60 61 }
面向對象的不是簡潔代碼,而是使代碼條理更加清晰,邏輯更加清晰。mysql