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;

    }

    }

    ?>

  • 相关阅读:
    桟错误分析方法
    gstreamer调试命令
    sqlite的事务和锁,很透彻的讲解 【转】
    严重: Exception starting filter struts2 java.lang.NullPointerException (转载)
    eclipse 快捷键
    POJ 1099 Square Ice
    HDU 1013 Digital Roots
    HDU 1087 Super Jumping! Jumping! Jumping!(动态规划)
    HDU 1159 Common Subsequence
    HDU 1069 Monkey and Banana(动态规划)
  • 原文地址:https://www.cnblogs.com/chen1101465910/p/3751710.html
Copyright © 2011-2022 走看看