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. (转)Yii的组件机制之一:组件基础类CComponent分析

    Yii的组件机制 组件机制,是Yii整个体系的思想精髓,在使用Yii之前,最应该先了解其组件机制,如果不了解这个机制,那么阅读Yii源代码会非常吃力.组件机制给Yii框架赋予了无穷的灵活性和可扩展性, ...

  2. [原]在win上编译 subversion 源码实践Tonyfield的专栏

    (百度和网页的作者无关,不对其内容负责。百度快照谨为网络故障时之索引,不代表被搜索网站的即时页面。) [原]在win上编译 subversion 源码实践 2013-6-9阅读400 评论0 (参考 ...

  3. windows下nodejs环境配置

    一.下载 去nodejs下载node.msi安装文件包,里面包含了node.js和npm: 双击node.msi就行了,选择安装路径和npm: 二.设置环境变量 [新版本都不需要设计环境变量了,软件会 ...

  4. 工欲善其事必先利其器——dreamweaver

    1.内置了一个webkit内核,所以实时视图与chrome浏览器效果一样. 2.DW中主浏览器的快捷键是f12,所以可以f12快速打开浏览器. 3.DW中首选项无法恢复到默认值. 4.有用首选项 5. ...

  5. HashMap的工作原理深入再深入

    前言 首先再次强调hashcode (==)和equals的真正含义(我记得以前有人会说,equals是判断对象内容,hashcode是判断是否相等之类): equals:是否同一个对象实例.注意,是 ...

  6. 自罚一杯-PHP基础(一)

    hi 懒癌是最可怕的癌了吧,在即将迎来本命年时,给自己定下每天必干的几件成习惯的事情,望不再鸽!! php是我一直在学习的东西,但总以为php简单,难点在需要掌握大量的相关知识,其实并不完全对,php ...

  7. JAVA中关于并发的一些理解

    一,JAVA线程是如何实现的? 同步,涉及到多线程操作,那在JAVA中线程是如何实现的呢? 操作系统中讲到,线程的实现(线程模型)主要有三种方式: ①使用内核线程实现 ②使用用户线程实现 ③使用用户线 ...

  8. CF721C. Journey[DP DAG]

    C. Journey time limit per test 3 seconds memory limit per test 256 megabytes input standard input ou ...

  9. vijos1037搭建双塔(一维背包问题)

    描述 2001年9月11日,一场突发的灾难将纽约世界贸易中心大厦夷为平地,Mr. F曾亲眼目睹了这次灾难.为了纪念“9?11”事件,Mr. F决定自己用水晶来搭建一座双塔. Mr. F有N块水晶,每块 ...

  10. HTML 学习笔记 CSS3 (边框)

    CSS3边框 通过CSS3边框 你能够创建远角边框 向矩形边框添加阴影 使用图片来绘制边框 . CSS3的边框属性 主要包含以下几种 border-radius 边框圆角 box-shadow 边框阴 ...