PDO的优势在于兼容性,但速度不如mysql和mysqli
new PDO($dsn,$username,$passwd[,$options])
$options可以设置数据库连接属性,如:
$options=array(PDO::ATTR_AUTOCOMMIT=>0,PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION);
beginTransaction()启动一个事务(要先关闭自动提交事务) commit()提交一个事务 rollBack()回滚一个事务 inTransaction()检查事务是否激活
exec()不能进行select操作;若sql语句错误,exec()返回false
errorInfo()返回值是数组,包含:0->SQLSTATE,1->错误码,2->错误信息
query()若sql语句错误,返回false
prepare()准备一条语句,execute()执行这条语句
quote()会返回带引号的字符串,并通过反斜线转义来过滤字符串中的特殊字符
setAttribute()和getAttribute()的一些常用参数:(成功调用则返回请求的 PDO 属性值。不成功则返回 null )
-
下列为应用到数据库连接中的常量:
- PDO::ATTR_AUTOCOMMIT 是否自动提交
- PDO::ATTR_CASE 字段名称是否大小写
- PDO::ATTR_CLIENT_VERSION 客户端版本
- PDO::ATTR_CONNECTION_STATUS 连接状态
- PDO::ATTR_DRIVER_NAME
- PDO::ATTR_ERRMODE 默认的错误处理模式,静默模式,出错屏幕不会显示,可以通过errorCode()和errorInfo()获取错误信息
- PDO::ERRMODE_WARRING 警告模式,出错会在屏幕提示
- PDO::ERRMODE_EXCEPTION 异常模式,建议使用,出错时在屏幕显示错误信息
- PDO::ATTR_ORACLE_NULLS 返回空字符串,转换为sql的null
- PDO::ATTR_PERSISTENT 数据库是否持久连接
- PDO::ATTR_PREFETCH
- PDO::ATTR_SERVER_INFO 服务器信息
- PDO::ATTR_SERVER_VERSION 服务器版本
- PDO::ATTR_TIMEOUT 超时时间设置
setFetchMode()的几种模式:setFetchMode(PDO::FETCH_ASSOC) setFetchMode(PDO::FETCH_BOTH) setFetchMode(PDO::FETCH_OBJ)
也可以直接设置fetch() / fetch_All()的几种模式:fetch(PDO::FETCH_ASSOC) fetch(PDO::FETCH_BOTH) fetch(PDO::FETCH_OBJ)
rowCount()也可以返回select语句得到的结果集的行数
bindParam()请参考php手册