zoukankan      html  css  js  c++  java
  • 5-22

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

    function mysql_bind(){

    global $dbhost,$dbuser,$db,$dbpass;

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

    //可以用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($dbhost,$dbuser,$dbpass) or die(mysql_error());

    mysql_select_db($db,$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;

    }

    }

    ?>

  • 相关阅读:
    科学家质疑当今商用量子计算机的性能
    科学家研制出可模拟大脑信息处理的微芯片
    2014年电子科技市场衰退
    号外!CentOS 宣布加入红帽公司!
    hadoop,高富帅的玩具?
    成为Linux内核高手的四个方法
    分阶段事件驱动架构【SEDA】
    原型程式设计【原型语言】
    IOS7.1 企业应用 证书无效 已解决
    iOS7.1企业应用"无法安装应用程序 因为证书无效"的解决方案
  • 原文地址:https://www.cnblogs.com/chen1101465910/p/3751710.html
Copyright © 2011-2022 走看看