PHP PDO
PHP 数�对象 (PDO) 扩展为PHP访问数�库定义了一个轻�级的一致接�。
PDO �供了一个数�访问抽象层,这�味�,�管使用哪�数�库,都�以用相�的函数(方法)�查询和获�数�。
PDOéš�PHP5.1å�‘行,在PHP5.0çš„PECL扩展ä¸ä¹Ÿå�¯ä»¥ä½¿ç”¨ï¼Œæ— 法è¿�行于之å‰�çš„PHP版本。
PDO 安装
ä½ å�¯ä»¥é€šè¿‡ PHP çš„ phpinfo() 函数æ�¥æŸ¥çœ‹æ˜¯å�¦å®‰è£…了PDO扩展。
在 Unix 系统上安装 PDO
在Unix上或Linuxä¸Šä½ éœ€è¦�æ·»åŠ ä»¥ä¸‹æ‰©å±•ï¼š
extension=pdo.so
Windows 用户
PDO 和所有主è¦�的驱动作为共享扩展éš� PHP 一起å�‘布,è¦�激活它们å�ªéœ€ç®€å�•地编辑 php.ini æ–‡ä»¶ï¼Œå¹¶æ·»åŠ ä»¥ä¸‹æ‰©å±•ï¼š
extension=php_pdo.dll除æ¤ä¹‹å¤–还有以下对应的å�„ç§�æ•°æ�®åº“扩展:
;extension=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
在设定好这些�置�,我们需���PHP 或 Web�务器。
接下�我们们�看下具体的实例,以下为使用PDO连接MySql数�库的实例:
实例
$dbms='mysql'; //数�库类型
$host='localhost'; //数�库主机�
$dbName='test'; //使用的数�库
$user='root'; //数�库连接用户�
$pass=''; //对应的密ç �
$dsn="$dbms:host=$host;dbname=$dbName";
try {
$dbh = new PDO($dsn, $user, $pass); //�始化一个PDO对象
echo "连接�功<br/>";
/*ä½ è¿˜å�¯ä»¥è¿›è¡Œä¸€æ¬¡æ�œç´¢æ“�作
foreach ($dbh->query('SELECT * from FOO') as $row) {
print_r($row); //ä½ å�¯ä»¥ç”¨ echo($GLOBAL); æ�¥çœ‹åˆ°è¿™äº›å€¼
}
*/
$dbh = null;
} catch (PDOException $e) {
die ("Error!: " . $e->getMessage() . "<br/>");
}
//默认这个ä¸�是长连接,如果需è¦�æ•°æ�®åº“长连接,需è¦�最å�ŽåŠ ä¸€ä¸ªå�‚数:array(PDO::ATTR_PERSISTENT => true) å�˜æˆ�è¿™æ ·ï¼š
$db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));
?>
很简��,接下�就让我们�具体看下PHP PDO具体说明:
- 预定义常�
- PHP PDO连接连接管�
- PHP PDO 事务与自动�交
- PHP PDO 预处ç�†è¯å�¥ä¸Žå˜å‚¨è¿‡ç¨‹
- PHP PDO 错误与错误处�
- PHP PDO 大对象 (LOBs)
- PDO 类:
- 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 — 为è¯å�¥è®¾ç½®é»˜è®¤çš„获å�–模å¼�。
点我分享笔记