PDO的简单应用
一:什么是PDO?
pdo是PHP应用中的一个数据库抽象层规范,PDO提供了一个统一的API接口可以PDO提供了一个统一的API接口,这是php5.1新加的一个功能,在这之前php通过各种库和各个数据库打交道,比如:php_mysql.dll链接mysql,php_pgsql.dll链接PostgreSQL,php_mssql.dll链接MS SQL Server……
二:为什么使用PDO?
1:PDO可以支持几乎所有主流数据库,从PHP应用层也可以实现对数据库的统一封装,不过PDO是以底层实现的统一接口数库操作接口,性能更加高效,安全性也更高。
2:支持更高级的DB特性,存储过程的调度,命名参数,以及预编译等等
3:PDO属于PHP官方的PECL库,稳定性和兼容性高于其他第三方扩展。
4:PHP7已经放弃了mysql扩展,要么使用官方的Mysqli,要么使用PDO,推荐PDO
三:CURD操作
1:链接数据库
<?php try{ $pdo=new pdo("mysql:host=127.0.0.1;dbname=bbs","root","123"); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//参数参考附1 $pdo->exec('set names utf8'); }catch(PDOException $e){ dir('数据库连接失败,错误信息:'. $e->getMessage()); }
PDO默认不是长连接,如果需要长连接,最后加一个参数:PDO::ATTR_PERSISTENT => true
$ots = array(PDO::ATTR_PERSISTENT => true);//可配置多个数组参数 $pdo=new pdo("mysql:host=localhost;dbname=bbs","root","123",$ots));
2:查询
附1:
选项名 | 描 述 |
---|---|
PDO::ATTR_AUTOCOMMIT | 确定 PDO 是否关闭自动提交功能,设置 FALSE 为关闭 |
PDO::ATTR_CASE | 强制 PDO 获取的表字段字符的大小写转换,或原样使用列信息 |
PDO::ATTR_ERRMODE | 设置错误处理的模式 |
PDO::ATTR_PERSISTENT | 确定连接是否为持久连接,默认为 FALSE,不持久连接 |
PDO::ATTR_ORACLE_NULLS | 将返回的空字符串转换为 SQL 的 NULL |
PDO::ATTR_PREFETCH | 设置应用程序提前获取的数据大小,以 K 字节为单位 |
PDO::ATTR_TIMEOUT | 设置超时之前的等待时间(秒为单位) |
PDO::ATTR_SERVER_INFO | 包含与数据库特有的服务器信息 |
PDO::ATTR_SERVER_VERSION | 包含与数据库服务器版本号有关的信息 |
PDO::ATTR_CLIENT_VERSION | 包含与数据库客户端版本号有关的信息 |
PDO::ATTR_CONNECTION_STATUS | 设置超时之前的等待时间(秒为单位) |