PHP_PDO简单操做

  PDO:PHP Data Object,PHP数据对象 是一种纯面向对象的操做风格,在新版的PHP中,PHP封装了一套PDO扩展库,专门用来操做不一样类型的数据库!php

  做用:mysql

  因为数据库的差别性,各个数据库的调用不是彻底相同的,一样的程序若是使用不一样的数据库存放数据时,须要对程序的数据处理部分进行改动,给移植带来不便。sql

  pdo为数据库访问提供了一致的接口,只需在配置的链接参数中,配置不一样的数据库驱动就能够了,而把对数据处理程序的改动下降到最小,甚至不需改动,为数据的处理及安全性都带来了很大的方便。数据库

  使用PDO,须要在php.ini中开启PDO扩展,在新版本中默认开启数组

  PDO的实例化安全

  PDO的类结构函数

  

  PDO构造方法:fetch

  

  一共有四个参数:
  $dsn:数据源名称,告诉系统选择哪一种类型的数据库,以及主机名和端口号,选择默认的数据库和默认的字符编码等!
  $username:数据库的用户名
  $password:数据库的密码
  $driver_options:附加选项,通常能够用默认编码

  

  链接成功会返回一个PDO对象。spa

  使用PDO实现增删改操做
  原理:调用PDO类中的 exec() 方法,若是返回受影响行数不为0(为真),则成功

     lastInsertID() 方法,返回最后插入记录的行数

  

  PDO查询操做
  
query()方法:执行sql语句(通常就是select查询语句),并返回一个PDOStatement类的对象(同mysql操做里的结果集)

#实例化PDO类
$pdo = new PDO($dns,$user,$pass);
#sql查询语句
$sql = '查询语句';
#调用query()方法,获得对象赋给$stmt
$stmt = $pdo->query($sql);

  PDOStatement对象

  

# PDOStatement对象 经常使用函数
#获取查询结果中的总行数(总记录数)
rowCount
#获取查询结果中的总列数(总字段数)
columnCount
#每次从PDOStatement结果集中获取一条记录,同时把指针下移,其中该方法有一个参数
fetch
#返回一个结果集中全部的记录,造成一个二维数组!能够用foreach遍历结果
fetchAll
#每次获取一列信息中的一条记录(也就是单一值),并将指针下移!
#该方法有一个参数,用来表明获取哪一列的信息,第一列为0,第二列为1,缺省值为0,默认为第一列.
fetchColumn
#做用同 fetch(FETCH_OBJ)
fetchObject

 

  fetch:返回一个结果集,参数有以下几个

#相似mysql_fetch_assoc函数,返回一个关联类型的数组
PDO::FETCH_ASSOC
#相似之前的mysql_fetch_row函数,返回一个索引数组
PDO::FETCH_NUM
#相似mysql_fetch_array,返回一个关联和索引并存的数组,为默认值
PDO::FETCH_BOTH #返回一个对象,其中对象的属性就是字段的值 PDO::FETCH_OBJ

  使用语法:

#实例化PDO类
$pdo = new PDO($dns,$user,$pass);
#sql查询语句
$sql = '查询语句';
#调用query()方法,获得对象赋给$stmt
$stmt = $pdo->query($sql);
#分别使用fetch第四个参数获取结果
$stmt ->fetch(PDO::FETCH_ASSOC);
$stmt ->fetch(PDO::FETCH_NUM);
$stmt ->fetch(PDO::FETCH_BOTH);
$stmt ->fetch(PDO::FETCH_OBJ);

  以上获取的结果每次从结果集中获取到一条数据,能够用while循环便利出来

#设置一个空数组
$rows = array();
# mysql_fetch_assoc 每次获取一条记录,将结果放到 $row 中
while( $row = $stmt->fetch(PDO::FETCH_ASSOC) ){
    #用while循环将每次获得的结果放入数组元素
    $rows[] = $row;
}
var_dump($rows);

    PDO的相关属性

  PDO的属性都是私有的或者受保护的,外部不能直接修改,可是PDO对象提供了两个操做属性的接口:

PDO::getAttribute     // 取回一个数据库链接的属性
PDO::setAttribute    // 设置属性

  设置属性方面只要一下几个:

PDO::ATTR_AUTOCOMMIT:自动提交 可选值有两个:
0或者1。0表明不开启自动提交,手动使用commit方法;1表明开启自动提交,也是默认值 PDO
::ATTR_CASE:返回结果集字段名大小写(重要) 可选值一共有三个: PDO::CASE_LOWER:返回的结果集所有为小写 PDO::CASE_UPPER:返回的结果集所有为大写 PDO::CASE_NATURAL:返回的结果集为正常(原来是什么样返回的仍是什么样,也是默认值) PDO::ATTR_ERRMODE:返回的错误模式(重要) 可选值有三个: PDO::ERRMODE_SILENT:静默模式,也是默认值(出错无任何提示) PDO::ERRMODE_WARNING:警告模式 PDO::ERRMODE_EXCEPTION:异常模式

  使用语法举例:

#实例化PDO类
$pdo = new PDO($dns,$user,$pass);
#设置属性,将异常模式设置为警告模式
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
$sql = '一条错误的sql语句';
$stmt = $pdo->query($sql);
相关文章
相关标签/搜索