©
Dokumen ini menggunakan Manual laman web PHP Cina Lepaskan
PDO(PHP Data Object),数据库访问抽象层,统一各种数据库的访问接口。
PDO支持的数据库有如下(数据来自 php 官方网站)
驱动名称 | 支持的数据库 |
---|---|
PDO_CUBRID | Cubrid |
PDO_DBLIB | FreeTDS / Microsoft SQL Server / Sybase |
PDO_FIREBIRD | Firebird/Interbase 6 |
PDO_IBM | IBM DB2 |
PDO_INFORMIX | IBM Informix Dynamic Server |
PDO_MYSQL | MySQL 3.x/4.x/5.x |
PDO_OCI | Oracle Call Interface |
PDO_ODBC | ODBC v3 (IBM DB2, unixODBC and win32 ODBC) |
PDO_PGSQL | PostgreSQL |
PDO_SQLITE | SQLite 3 及 SQLite 2 |
PDO_SQLSRV | Microsoft SQL Server / SQL Azure |
PDO_4D | 4D |
配置 php.ini 配置文件,开启相应的扩展
extension = php_pdo.dll
开启对应数据库的扩展,这里以 MySQL 为例。
extension = php_pdo_mysql.dll
通过查看
phpinfo();
可以看到 PDO 扩展你的详细信息,内容如下:
通过参数的形式连接数据库
<?php try { $dsn = 'mysql:host=localhost;dbname=test'; // 数据源 $username = 'root'; // 数据库用户名 $passwd = 'aaaaaa'; // 数据库密码 $pdo = new PDO($dsn, $username, $passwd); print_r($pdo); // 返回 PDO Object ( ) } catch (PDOException $e) { echo $e->getMessage(); }
通过 URI 的形式连接数据库
<?php try { $dsn = 'uri:file:///Applications/MAMP/htdocs/Study/Pdo/dsn.txt'; // 数据源 其中 /Applications/MAMP/htdocs/Study/Pdo/dsn.txt 为文件 dsn.txt 路径 $username = 'root'; // 数据库用户名 $passwd = 'aaaaaa'; // 数据库密码 $pdo = new PDO($dsn, $username, $passwd); print_r($pdo); // 返回 PDO Object ( ) } catch (PDOException $e) { echo $e->getMessage(); }
其中需要配置一个单独的文件 dsn.txt
,文件内容如
mysql:host=localhost;dbname=test
通过配置文件的形式连接数据库
首先需要修改 PHP 的配置 php.ini
,新增如下代码
pdo.dsn.test = "mysql:host=localhost;dbname=test"
命名为 test
,连接本地的 test 数据库。
代码中使用
<?php try { $dsn = 'test'; // 在 php.ini 中定义的名称 $username = 'root'; // 数据库用户名 $passwd = 'aaaaaa'; // 数据库密码 $pdo = new PDO($dsn, $username, $passwd); print_r($pdo); // 返回 PDO Object ( ) } catch (PDOException $e) { echo $e->getMessage(); }