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 表示无错误)

pdo知识总结的更多相关文章

  1. PDO知识

    PDO: 一.含义: 数据访问抽象层 二.作用 :通过PDO能够访问其它的数据库 三. 用法: 1.造对象 ①$dsn="mysql:dbname=zz;host=localhost&quo ...

  2. 封装PDO函数

    funPDO.php <?php /** * @title: 封装PDO函数 * * @Features: * 1. 封装 SELECT ,INSERT,DELETE,UPDATE 操作 @do ...

  3. PHP基础知识之————PDO预处理语句

    转载处:http://www.cnblogs.com/xiaohuochai/p/6133353.html 定义 在生成网页时,许多PHP脚本通常都会执行除参数之外,其他部分完全相同的查询语句,针对这 ...

  4. PDO基础知识

    使用PDO之前首先开启PHP的PDO扩展,方法见百度. PDO连接数据库的方式有三种 1.通过参数的形式连接数据库 (推荐) //通过参数形式连接数据库 try{ $dsn = 'mysql:host ...

  5. PDO 基础知识

    PDO: 一.含义: 数据访问抽象层 二.作用 :通过PDO能够访问其它的数据库 三. 用法: 1.造对象 ①$dsn="mysql:dbname=zz(数据库名);host=localho ...

  6. PDO 小知识

    一.前言 PDO(PHP Data Object)提供了一个通用接口访问多种数据库,即抽象的数据模型支持连接多种数据库. PDO扩展为PHP定义了一个访问数据库的轻量.持久的接口.其本身并不能实现任何 ...

  7. PHP中PDO的配置与说明

    住[PDO是啥] PDO是PHP5新加入的一个重大功能,因为在PHP5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么php_mysql.dll.php_pgsql.dll ...

  8. PHP5中PDO的简单使用

    PHP5中PDO的简单使用 标签: php数据库mysql扩展extensionexception 2012-05-06 10:27 27753人阅读 评论(0) 收藏 举报  分类: PHP(6)  ...

  9. 使用PDO持久化连接

    无论是何种编程语言,几乎都要经常与各种数据库打交道.不过,众所周知的是,在程序与数据库之间建立连接是一件比较耗费资源的事情,因此编程技术领域的许多专家.前辈们就设想并提出了各种解决方案,以减少不必要的 ...

随机推荐

  1. C#语句

    C#控制语句 控制语句: goto语句 If语句 do while循环  for循环  while循环 switch语句 三元运算符   <test?><resultIfTrue&g ...

  2. [cocos2d-x]深入--几个代表性的类 (续)

    摘要: 此文对cocos2d-x引擎中最具代表性,最能体现框架结构的几个类做了简单的介绍, 包括Director,Application, Renderer, EventDispatcher, Sch ...

  3. ural One-two, One-two 2

     One-two, One-two 2 Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u ...

  4. 第30课 Qt中的文本编辑组件

    1. 3种常用的文本编辑组件的比较 单行文本支持 多行文本支持 自定义格式支持 富文本支持 QLineEdit (单行文本编辑组件) Yes No No No QPlainTextEdit (多行普通 ...

  5. 平面直接坐标系线段相交问题(小Q(钟神)的问题)

    [问题描述] 小 Q 对计算几何有着浓厚的兴趣.他经常对着平面直角坐标系发呆,思考一些有趣的问题.今天,他想到了一个十分有意思的题目:首先,小 Q 会在?轴正半轴和?轴正半轴分别挑选?个点.随后,他将 ...

  6. UNITY3D中涉及的一些数学知识

    3D中的法线是什么意思啊~ 在空间垂直于一个平面的直线:或者在一个平面里面,垂直于一条直线的直线.法线也可以指的某个方向.对于圆弧来讲,指的是它与圆心相连的直线(方向).法线:英语叫Normal Li ...

  7. 【程序员技术练级】熟悉Unix/Linux Shell和常见的命令行(一)文件系统结构和基本操作

    作为程序猿,熟悉一些unix/linux命令行是非常必要的,因为部署服务的服务器现在基本上用的都是unix/linux系统,很少在windows上部署服务的. 今天我们就介绍一些在linux上的文件系 ...

  8. Oracle job procedure 存储过程定时任务

    Oracle job procedure 存储过程定时任务 oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务. 一.查询系统中的job,可以查询视图 --相关视图 ...

  9. iOS ARC内存管理

    iOS的内存管理机制,只要是iOS开发者,不管多长的时间经验,都能说出来一点,但是要深入的理解.还是不简单的.随着ARC(自动管理内存)的流行.iOS开发者告别了手动管理内存的复杂工作.但是自动管理内 ...

  10. Win10添加简体中文美式键盘的方法

    在Win10中很多朋友发现没有简体中文(美式键盘)的选项,而如果使用“英语-美式键盘”作为默认输入法,有ModernApp的界面会变成英文,这十分不方便,那么有没有方可以在Win10中添加一个 简体中 ...