1.描述:
使用数据库抽象类,意义在于从一个数据库向另一个数据库迁移,不用更改太多的程序代码
2.安装:
1.)windows下安装,PHP.ini找到extension扩展
PDO的扩展:
extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pdo_mssql.dll
extension=php_pdo_odbc.dll
extension=php_pdo_firebird.dll
;extension=php_pdo_oci8.dll
各种PDO驱动,oci8是oracle数据库
2.)打开phpinfo.php看到如下信息
PDO
PDO support enabled
PDO drivers mysql, pgsql, sqlite, mssql, odbc, firebird
3.应用:
1.)连接数据库
//sqlserver数据源 $dsn = "dblib:host=192.168.5.5;port=1432;dbname=act_db";
//mysql数据源
$dsn = "mysql:host=127.0.0.1;dbname=test";
$db = new PDO($dsn,'root','');
//返回一个影响记录的结果
$count = $db->exec("INSERT INTO `test` VALUES (id,'phpbobo',13500000000)");
echo $count;
//结束对象资源:
$db = null;
2.)查询数据库 (数字索引和关联索引(字段关联))
$rs = $db->query("SELECT * FROM `test`");
$result_arr = $rs->fetchAll();
3.)查询数据库 (关联索引查询)
$rs = $db->query("SELECT * FROM `test`");
//关联索引形式
$rs->setFetchMode(PDO::FETCH_ASSOC);
$result_arr = $rs->fetchAll();
4.)查询数据库 (一个字段)
$rs = $db->query("SELECT count(id) AS count FROM `test`");
$result = $rs->fetchColumn();
4.总结:
1.)查询主要是 PDO::query()、PDO::exec()
PDO::query()主要用与SELECT操作
PDO::exec() 主要用于INSERT、UPDATE、DELETE
2.)获取结果集主要是 PDOStatement::fetchColumn()、PDOStatement::fetch()、PDOStatement::fetchAll()
PDOStatement::fetchColumn()获取结果一个字段
PDOStatement::fetch() 获取一条记录
PDOStatement::fetchAll() 获取N条记录 可以通过PDOStatement::setFetchMode来设置需要结果集合的类型
5.错误处理:
//连接错误
try{
$db = new PDO('mysql:host=127.0.0.1;dbname=test','root','');
return $db;
}catch(PDOException $e){
die($e->getMessage());
}