PDO
主讲人:熊启锰
联系人:高经理 **********
版权所有:大聪网络科技PHP培训部
PDO简介
PDO(PHP Data Objects Layer)提供一个公共的数据库系统接口,它使用C语言做底层开发,运行速度比较快。PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层
,严格意义上讲归为PHP 5的SPL库之一,与MySQLi扩展功能相似.
PDO解决了数据库连接不统一的问题。
PDO的安装
安装PDO MySQL驱动
Linux:cd /ports/database/pecl-PDO_MYSQLmake install
Windows:自带,不需要安装
配置文件
Linux:extension=
Windows:extension=
extension=
两行前的“;”去掉,重启Apache服务
PDO类
1. query($sql); 用于执行查询SQL语句。返回PDOStatement对象
2. exec($sql); 用于执行增、删、改操作,返回真或假;
3. getAttribute(); 获取一个"数据库连接对象"属性。
4. setAttribute(); 设置一个"数据库连接对象"属性。
5. beginTransaction 开启一个事物(做一个回滚点)
6. commit 提交事务
7. rollBack 事务回滚操作。
8. errorCode 获取错误码
9. errorInfo 获取错误信息
获取刚刚添加的主键值。
创建SQL的预处理,返回PDOStatement对象-
为sql字串添加单引号。
PDOStatement类
execute()
fetch()
fetchAll()
fetchColumn()
setFetchMode()
rowCount()
setAttribute()
getAttribute()
errorCode()
errorInfo()
bindParam()
bindColumn()
bindValue()
nextRowset()
columnCount()
rowCount()
nextRowset()
getColumnMeta()
closeCursor()
PDO连接数据库
PDO连接数据库和其他数据库抽象层区别不大
try{
$con=new PDO('mysql:host=localhost;dbname=book','root','root');
//如果连接失败,则抛出异常
}catch(PDOException $e){
echo $e->getMessage();
}
连接字符串
MySQL
"mysql:host=$host;dbname=$db"
SQLite
"sqlite:$db"
PostgreSQL
"pgsql:host=$host dbname=$db",
持久连接
持久连接速度快,不用每次开关连接。
$opt=array(PDO::ATTR_PERSISTENT => TRUE);
try{
$con=new PDO('mysql:host=localhost;dbname=book','root','root',$opt);
//如果连接失败,则抛出异常
}catch(PDOException $e){
echo $e->getMessage();
}
DSN-ODBC连接
使用一个DSN数据源名称,定义ODBC数据源驱动连接
ini_set("","mysql::test");
try{
$con=new PDO('dbserver');
//如果连接失败,则抛出异常
}catch(PDOException $e){
echo $e->getMessage();
}
错误与异常处理
设置PDO获取得错误信息的方式
$con->setAttribute(PDO::ATTR_ERRMODE , PDO::ERRMODE_EXECPTION);
PDO::ERROR_SILENT 默认模式0,不进行任何操作
PDO::ERROR_WARNING 警告模式1,发送传统错误信息
PDO::ERROR_EXCEPTION 异常模式2,采用OOP异常报错模式
面向过程
$con->errorCode():SQL语句错误代码
$con->errorInfo():错误信息
面向对象
捕获PDOExc
PHP培训课程之PDO详解 来自淘豆网m.daumloan.com转载请标明出处.