@H_404_0@POD扩展是在PHP5中加入,该扩展提供PHP内置类 PDO来对数据库进行访问,不同数据库使用相同的方法名,解决数据库连接不统一的问题。
@H_4040@
PDO的特点:
@H404_0@性能。PDO 从一开始就吸取了现有数据库扩展成功和失败的经验教训。因为 PDO 的代码是全新的,所以我们有机会重新开始设计性能,以利用 PHP 5 的最新特性。 @H_404_0@能力。PDO 旨在将常见的数据库功能作为基础提供,同时提供对于 RDBMS 独特功能的方便访问。 @H_404_0@简单。PDO 旨在使您能够轻松使用数据库。API 不会强行介入您的代码,同时会清楚地表明每个函数调用的过程。 @H_404_0@运行时可扩展。PDO 扩展是模块化的,使您能够在运行时为您的数据库后端加载驱动程序,而不必重新编译或重新安装整个 PHP 程序。例如,PDO_OCI 扩展会替代 PDO 扩展实现 oracle 数据库 API。还有一些用于 MysqL、Postgresql、ODBC 和 Firebird 的驱动程序,更多的驱动程序尚在开发。 @H_404_0@
PDO 安装
@H_404_0@你可以通过 PHP 的 PHPinfo() 函数来查看是否安装了PDO扩展。 @H_404_0@1.在 Unix /Linux系统上安装 PDO @H_404_0@在Unix上或Linux上你需要添加以下扩展:PHP;">
extension=PHP_pdo.dll
@H_404_0@除此之外还有以下对应的各种数据库扩展:
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
@H_404_0@打开PHP.ini把上面所有行前面的分号去掉就可以了。
@H_404_0@在设定好这些配置后,我们需要重启PHP 或 Web服务器。
@H_404_0@下面我们以MysqL为例来使用pdo:
PHP;">
PHP
$dbms='MysqL'; //数据库类型
$host='localhost'; //数据库主机名
$dbName='test'; //使用的数据库
$user='root'; //数据库连接用户名
$pass=''; //对应的密码
$dsn="$dbms:host=$host;dbname=$dbName";
@H_404_0@再来看看pdo的详细介绍:
@H_404_0@1.预定义常量:
@H_404_0@
try {
$dbh = new PDO($dsn,$user,$pass); //初始化一个PDO对象
echo "连接成功
";
/你还可以进行一次搜索操作
foreach ($dbh->query('SELECT from FOO') as $row) {
print_r($row); //你可以用 echo($GLOBAL); 来看到这些值
}
*/
$dbh = null;
} catch (PDOException $e) {
die ("Error!: " . $e->getMessage() . "
");
}
//默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT => true) 变成这样:
$db = new PDO($dsn,$pass,array(PDO::ATTR_PERSISTENT => true));
?>
- PDO::beginTransaction — 启动一个事务
- PDO::commit — 提交一个事务
- PDO::__construct — 创建一个表示数据库连接的 PDO 实例
- PDO::errorCode — 获取跟数据库句柄上一次操作相关的 sqlSTATE
- PDO::errorInfo — 返回最后一次操作数据库的错误信息
- PDO::exec — 执行一条 sql 语句,并返回受影响的行数
- PDO::getAttribute — 取回一个数据库连接的属性
- PDO::getAvailableDrivers — 返回一个可用驱动的数组
- PDO::inTransaction — 检查是否在一个事务内
- PDO::lastInsertId — 返回最后插入行的ID或序列值
- PDO::prepare — 备要执行的sql语句并返回一个 PDOStatement 对象
- PDO::query — 执行 sql 语句,返回PDOStatement对象,可以理解为结果集
- PDO::quote — 为sql语句中的字符串添加引号。
- PDO::rollBack — 回滚一个事务
- PDO::setAttribute — 设置属性
- PDOStatement 类:
- PDOStatement::bindColumn — 绑定一列到一个 PHP 变量
- PDOStatement::bindParam — 绑定一个参数到指定的变量名
- PDOStatement::bindValue — 把一个值绑定到一个参数
- PDOStatement::closeCursor — 关闭游标,使语句能再次被执行。
- PDOStatement::columnCount — 返回结果集中的列数
- PDOStatement::debugDumpParams — 打印一条 sql 预处理命令
- PDOStatement::errorCode — 获取跟上一次语句句柄操作相关的 sqlSTATE
- PDOStatement::errorInfo — 获取跟上一次语句句柄操作相关的扩展错误信息
- PDOStatement::execute — 执行一条预处理语句
- PDOStatement::fetch — 从结果集中获取下一行
- PDOStatement::fetchAll — 返回一个包含结果集中所有行的数组
- PDOStatement::fetchColumn — 从结果集中的下一行返回单独的一列。
- PDOStatement::fetchObject — 获取下一行并作为一个对象返回。
- PDOStatement::getAttribute — 检索一个语句属性
- PDOStatement::getColumnMeta — 返回结果集中一列的元数据
- PDOStatement::nextRowset — 在一个多行集语句句柄中推进到下一个行集
- PDOStatement::rowCount — 返回受上一个 sql 语句影响的行数
- PDOStatement::setAttribute — 设置一个语句属性
- PDOStatement::setFetchMode — 为语句设置默认的获取模式。