简介
**PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口。
PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。
PDO随PHP5.1发行,在PHP5.0的PECL扩展中也可以使用,无法运行于之前的PHP版本。**
安装
<font color = "blue">你可以通过 PHP 的 phpinfo() 函数来查看是否安装了PDO扩展。</font>
PDO 和所有主要的驱动作为共享扩展随 PHP 一起发布,要激活它们只需简单地编辑 php.ini 文件,并添加以下扩展:
extension=php_pdo.dll
除此之外还有以下对应的各种数据库扩展:
;extension=php_pdo_firebird.dll ;extension=php_pdo_informix.dll
;extension=php_pdo_mssql.dll ;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll ;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll ;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
链接数据库
pdo对象是一个在页面中不可见内容的对象
这个对象只能靠创建成功和失败来判断链接状态,而无法查看内部的属性和属性值
try{
$dsn = 'mysql:host=localhost;dbname=bbs;charset=utf8;port=3306';
$pdo = new PDO($dsn,'root','admin');
} catch(PDOException $e){
echo '错误';
echo $e->getMessage();//返回错误信息
}
设置错误处理模式(PDO::ATTR_ERRMODE) 推荐为异常处理模式
PDO::ERRMODE_SILENT:不报错误
PDO::ERRMODE_WARNING:以警告的方式报错 后面的代码继续执行
PDO::ERRMODE_EXCEPTION:以异常的方式报错 中断代码的执行
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
设置结果集返回的格式(PDO::ATTR_DEFAULT_FETCH_MODE)
PDO::FETCH_ASSOC -- 关联数组形式
PDO::FETCH_NUM -- 数字索引数组形式
PDO::FETCH_BOTH -- 两者数组形式都有
PDO::FETCH_OBJ -- 按照对象的形式
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
操作数据库
$pdo->exec(sql语句) insert update delete 执行有影响行数的语句 增删改 会改变表结构
$pdo->query(sql语句) select 执行有查询结果集的语句,只是查询数据;返回一个预处理对象
$user = $stmt->fetch();//默认是索引数组和关联数组相结合的方式
$user = $stmt->fetch(PDO::FETCH_ASSOC);//返回索引形式的数组
$user = $stmt->fetch(PDO::FETCH_OBJ);//返回一个对象
$users = $stmt->fetchAll();//返回一个二维数组 索引数组和关联数组相结合的方式
$users = $stmt->fetchAll(PDO::FETCH_ASSOC);//返回二维数组 关联数组的形式
$users = $stmt->fetchAll(PDO::FETCH_CLASS);//返回二维数组 对象的形式