下面就来介绍一下数据库抽象层 PDO 的使用:
PDO(PHP Data Objects) 是一个轻量级的 PHP 扩展, 提供了一个数据访问抽象层还要就是 PDO 只能在 PHP5.0 以上版本使用
下面来介绍一下 PDO 常用的预定义常量:
PDO::PARAM_BOOL (integer) 表示布尔数据类型
PDO::PARAM_NULL (integer) 表示数据类型为 NULL 的 SQL
PDO::PARAM_INT (integer) 表示为 integer 数据类型的 SQL
PDO::PARAM_STR (integer) 表示为 char varchar 或者其他字符串的数据类型的 SQL
PDO::PARAM_LOB (integer) 表示对象数据类型的 SQL
PDO::FETCH_LAZY (integer) 指定的获取方式, 应当返回结果集的每一行作为一个对象的变量名, 对应于它的字段名
PDO::FETCH_ORI_NEXT (integer) 取结果集的下一行
PDO::FETCH_ORI_PRIOR (integer) 取结果集的前面的行
PDO::FETCH_ORI_FIRST (integer) 取结果集的第一行
PDO::FETCH_ORI_LAST (integer) 取结果集的最后一行
PDO::ATTR_PERSISTENT (integer) 创建一个持久连接, 而不是新创建一个连接
PDO 的基本用法:
使用 PDO 与数据库连接 (这里只使用 MySQL):
代码如下:
- $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
- ?>
下面的代码是对 MySQL 连接错误时的处理:
代码如下:
- try {
- $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
- foreach($dbh->query('SELECT * from FOO') as $row) {
- print_r($row);
- }
- $dbh = null;
- } catch (PDOException $e) {
- print "Error!:" . $e->getMessage() . "
- ";
- die();
- }
- ?>
下面是两个重复使用插入语句的例子:
代码如下:
- $stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
- $stmt->bindParam(':name', $name);
- $stmt->bindParam(':value', $value);
- // insert one row
- $name = 'one';
- $value = 1;
- $stmt->execute();
- // insert another row with different values
- $name = 'two';
- $value = 2;
- $stmt->execute();
- ?>
代码如下:
- $stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
- $stmt->bindParam(1, $name);
- $stmt->bindParam(2, $value);
- // insert one row
- $name = 'one';
- $value = 1;
- $stmt->execute();
- // insert another row with different values
- $name = 'two';
- $value = 2;
- $stmt->execute();
- ?>
对数据库进行查询操作:
代码如下:
- $stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
- if ($stmt->execute(array($_GET['name']))) {
- while ($row = $stmt->fetch()) {
- print_r($row);
- }
- }
- ?>
来源: https://www.php1.cn/detail/php-e4d497f46e.html