2014-05-15 总结

封装函数(增,删,查,改)

步骤:

function 页面

     //编写数据库操作的魔术函数

      function mysql_bind(){

     //首先我们不知道外面会传入多少个参数    

     //可以用func_get_args()方法来获取全部传入参数,这个方法返回全部参数的数组    

    //和func_get_args()方法相对应的其实还有一个func_num_args()来获取参数个数    

       $args = func_get_args();

    //通过使用array_shift方法,使传入的第一个参数,后后面的参数分开,其实就是把sql语句和后面传入的值分开,使用了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;   

    }

}

test  页面

 <?php

       include("function2.php");

       $r = mysql_bind("select * from users where userName=? and password=?","pangpang","qqq");

       //$r = mysql_bind("insert into users(id,userName,password,nickName,userImg,status)values(?,?,?,?,?,?)","","3","3","3","3","2");

       //$r = mysql_bind("delete from users where userName=?","1");

      //$r = mysql_bind("update users set nickName=? where id=?","罗大胖","1");

     foreach($r as $row){    

        echo "用户:".$row['nickName']."<br/>";    

        echo "密码:".$row['password']."<br/>";

 }

?>

 

 

posted @ 2014-05-15 21:53  失忆^ Dreams  阅读(90)  评论(0编辑  收藏  举报