zoukankan      html  css  js  c++  java
  • PHP封装数据库函数

    //数据库函数的封装与应用

    <?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;
    }


    }

    ?>

    //应用

    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
    <?php

    //function2.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/>";
    }

    ?>

  • 相关阅读:
    数据库设计
    企业Logo的发展趋势
    把握面试关键点才是上策
    关注程序员健康之——保护你的腰椎
    常见病的中医药诊治胃痛,呕吐,腹痛,泄泻,分型论治
    孕妈咪 只要恭喜 不要害喜
    职业程序员培养之道
    呕吐、哕、下利病
    脾胃系病证便秘,痢疾,泄泻,腹痛,呃逆。。。。。。。。
    Oracle数据库DBA原文经典书籍
  • 原文地址:https://www.cnblogs.com/yanjialin/p/3731052.html
Copyright © 2011-2022 走看看