1:完整版的封裝函數(增(insert),刪(delete),改(update))php
例:<?phpmysql
//編寫數據庫操做的封裝函數算法
function mysql_bind(){sql
//首先咱們不知道外面會傳入多少個參數 數據庫
//能夠用func_get_args()方法來獲取所有傳入參數,這個方法返回所有參數的數組 數組
//和func_get_args()方法相對應的其實還有一個func_num_args()來獲取參數個數 函數
$args = func_get_args();fetch
//經過使用array_shift方法,使傳入的第一個參數,後後面的參數分開,其實就是把sql語句,和 spa
//後面傳入的值分開,使用了array_shift方法,能夠返回一個字符串,這個字符串就是sql語句 字符串
//後面剩下的數組就是要傳入的值
//sql語句
$sql = array_shift($args);
//從新複製給一個數組
$value = $args;
//替換$sql語句中的?,使用str_replace函數
$sql = str_replace("?","'%s'",$sql);
//把替換好的$sql語句,經過vsprintf函數,把值填入進去
$sql = vsprintf($sql,$value);
//截取$sql語句前面的關鍵字,其實就是select,insert,update,delete
$begin = substr($sql,0,6);
注意: //explode(" ",$sql)[0]; //這種寫法在PHP5.4以前是不支持的
$conn = mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("bbs",$conn);
mysql_query("set names 'utf8'");
$result = mysql_query($sql) or die(mysql_error());
if(strcasecmp($begin,"insert") == 0){
//若是插入成功,那麼確定有一個最新的id,因此這個id不等於0的話,證實插入成功,不然失敗
return mysql_insert_id();
} else if(strcasecmp($begin,"update") == 0){
//mysql_affected_rows()表示幾行受影響,成功,確定是大於0,不然失敗
return mysql_affected_rows();
} else if(strcasecmp($begin,"delete") == 0){
//mysql_affected_rows()表示幾行受影響,成功,確定是大於0,不然失敗
return mysql_affected_rows();
} else{
//爲了將查詢的內容返回回去
//首先申明一個空的數組,而後,這個空的數組,每次循環,都將$row賦值給他
//至關於這個數組就造成了一個二維數組
$arr = array();
while($row=mysql_fetch_array($result)){
$arr[] = $row; //
array_push($arr,$row);
}
return $arr;
}
}
?>
2:strcasecmp:比較兩個數誰大誰小和是否相等(計算法:二進制)
例:strcasecmp("ab","ac")
ac比ab大