数据库封装

把下面页面封装名字为dbhelper.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     }
61 }
62 
63 ?>

 

封装dbhelper.php调用方法,增、删、查、改 数据库里表的数据

1 include("dbhelper.php");
2 $r = mysql_bind("select * from users where userName=? and password=?","pangpang","qqq");
3 
4 //$r = mysql_bind("insert into users(id,userName,password,nickName,userImg,status)values(?,?,?,?,?,?)","","3","3","3","3","2");
5 //$r = mysql_bind("delete from users where userName=?","1");
6 //$r = mysql_bind("update users set nickName=? where id=?","罗大胖","1");

 

数据库封装,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。