PDO的基本使用
PDO扩展提供了PDO类,该类提供了很多方法,通常使用PDO类主要用于连接数据库、发送SQL语句等。常用的方法如下所示。
- PDO::__construct():实例化PDO对象,帮助实现连接认证、数据库选择、字符集设置等功能。
- PDO::__exec():执行一个写操作的SQL指令,返回受影响的行数。
- PDO::__query():执行一个读操作的SQL指令,返回一个PDOStatement类对象。
- PDO::errorCode()和PDO::errorInfo():获取错误信息,errorCode()是获取错误码,errorInfo()是获取错误的信息。
在使用PDO扩展连接数据库时,需要先实例化PDO类,通过PDO::__construct()方法实例化PDO类,传递数据库连接参数,基本语法格式如下。
PDO::__construct (
string $dsn, // 数据源名称
string $username, // 用户名(可选)
string $password, // 密码(可选)
array $driver_options // 包含键值的驱动连接选项(可选)
)
上述语法中,$dsn是由PDO驱动程序名称、“:”和PDO驱动程序特有的连接语法组成。例如,连接MySQL数据库时,PDO驱动名为mysql,它特有的连接语法包括主机名、端口号、数据库名称、字符集等;连接Oracle数据库时,PDO驱动名为oci,它特有的连接语法只包括数据库名称和字符集。其他数据库的PDO驱动名称以及特有的连接语法可以参考PHP手册,本书以连接MySQL数据库的PDO驱动为例讲解。
下面演示PDO连接本地的MySQL服务器,选择mydb数据库,示例代码如下。
1 <?php
2 $dsn = 'mysql:host=localhost;port=3306;dbname=mydb;charset=utf8';
3 $pdo = new PDO($dsn, 'root', '123456');
4 var_dump($pdo); // 输出结果:object(PDO)#1 (0) { }
以上代码实例化PDO成功则返回一个PDO对象,否则会抛出一个 PDO异常(PDOException)。在$dsn字符串中,host用于指定连接的主机名,port用于指定连接的端口号,dbname用于选择数据库,charset用于设置字符集,各连接语法之间使用分号“;”进行分隔。