zoukankan      html  css  js  c++  java
  • pdo知识总结

    PDO 用了这么久了这里抽时间总结下:

       pdo (php data object) 是php5 新出来的支持 mysql 操作的一个功能。用其可代替mysqli扩展。因为是php自带的。所以我觉得效率方面会比phpmysqli等扩展高。

    安装pdo可参考之前的文章,这里就不详细介绍了。

      

    /*
    *  $sql =  'insert into tableName (title) values(:title)';
    *  $data = array(':title'=>'123')
    *  返回格式统一 array('code','mes','data')
    */
    function querySql($sql,$data=array()){
      try{ $connect = new PDO('mysql:host=数据库地址;dbname=数据库名',用户名,密码,array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names utf8"));//链接数据库 }catch(PDOException $e){ return array(0,$e->getMessage(),array());//链接失败返回失败信息 } if(!$connect){ $mes='database connect is error! by jacky!'; return array(0,$mes,array());      //返回失败信息 }else{ $res_data = $connect->prepare($sql);//预处理一个sql if(count($data)==0){          //判断有没有展位的参数 $res_data->execute();        //执行sql语句 }else{ $res_data->execute($data);    //将data中数据赋值到sql中 ,执行sql 语句 } $error = $res_data->errorInfo();  //获取执行结果 if($error[0]=='00000'){        //返回中第一个为00000则表示执行成功,语句没有问题 $insert_id = $connect->lastInsertId();// insert id    获取插入的最后一个id 有则返回,没有则为空 $update_count = $res_data->rowCount();//update count    获取更新的条数   有则返回,没有则为空 $connect = null;                //关闭这个sql链接 $return_data = array();//select data    准备获取查询的数据 foreach ($res_data as $key => $r) {    //通过循环将查询的数据存入前面定义的数组中 $return_data[$key] = $r; } return array('code'=>1,'mes'=>'ok','data'=>array('select'=>$return_data,'insert_id'=>$insert_id,'update_count'=>$update_count));//将查询、更新、插入到的返回数据返回 }else{ $connect = null;   //sql语句有错误,关闭这个sql链接 return array('code'=>0,'mes'=>implode(',',$error),'data'=>array('select'=>array(),'insert_id'=>array(),'update_count'=>array()));//返回sql的错误,将其他赋值为空 } }

    上述代码中select 出的结果 也可一次性放入一个数组中 

      

    $result_arr = $rs->fetchAll();
    return array('code'=>1,'mes'=>'ok','data'=>array('select'=>$result_arr,'insert_id'=>$insert_id,'update_count'=>$update_count));//将查询到的数据返回

    返回查询的条数

    $rs = $db->query("SELECT COUNT(*) FROM foo");
    $col = $rs->fetchColumn();
    echo $col;

    获取异常

        // 属性
        protected $message = 'Unknown exception';   // 异常信息
        protected $code = 0;                        // 用户自定义异常代码
        protected $file;                            // 发生异常的文件名
        protected $line;                            // 发生异常的代码行号
    
        // 方法
        final function getMessage();                // 返回异常信息
        final function getCode();                   // 返回异常代码
        final function getFile();                   // 返回发生异常的文件名
        final function getLine();                   // 返回发生异常的代码行号
        final function getTrace();                  // backtrace() 数组
        final function getTraceAsString();          // 已格成化成字符串的 getTrace() 信息

    errorInfo()返回(00000 表示无错误)

  • 相关阅读:
    扩展欧几里得算法
    poj-3094-quicksum
    (floyd)佛洛伊德算法
    poj-3660-cows contest(不懂待定)
    poj-1056-IMMEDIATE DECODABILITY(字典)
    delete与delete[]的区别
    poj-1046-color me less
    SqlParameter 使用
    VS2010中出现无法嵌入互操作类型(转)
    fastreport代码转
  • 原文地址:https://www.cnblogs.com/jackylee92/p/6141308.html
Copyright © 2011-2022 走看看