zoukankan      html  css  js  c++  java
  • PHP——封装数据库的函数(增,删,改)2014.5.15的总结

    1:完整版的封装函数(增(insert),删(delete),改(update))

        例:<?php

            //编写数据库操作的封装函数

            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;    

        }

    }

    ?>

    2:strcasecmp:比较两个数谁大谁小和是否相等(计算法:二进制)

        例:strcasecmp("ab","ac")

            ac比ab大

  • 相关阅读:
    poj3273Monthly Expense
    poj2516Minimum Cost
    poj1201Intervals(差分约束)
    poj3122Pie
    poj3258River Hopscotch
    hdu3308LCIS(线段树区间合并)
    CF1178F2 Long Colorful Strip
    CF906C Party
    [NOI2002]贪吃的九头龙
    CF1178F1 Short Colorful Strip
  • 原文地址:https://www.cnblogs.com/zouxueling/p/3730973.html
Copyright © 2011-2022 走看看