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 } 61 } 62 63 ?>