1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 数据库抽象层 PDO

数据库抽象层 PDO

时间:2024-02-08 08:53:02

相关推荐

数据库抽象层 PDO

因为这段时间工作比较忙 所以很长时间没有更新技术博客了。 在这段时间学习到了很多以前没有接触过的东西。下面就来介绍一下数据库抽象层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):

<?php$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);?>

下面的代码是对MySQL连接错误时的处理:

1 <?php

2 try {

3 $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);

4 foreach($dbh->query('SELECT * from FOO') as $row) {

5 print_r($row);

6 }

7 $dbh = null;

8 } catch (PDOException $e) {

9 print "Error!: " . $e->getMessage() . "<br/>";

10 die();

11 }

12 ?>

下面是两个重复使用插入语句的例子:

<?php

$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();

?>

<?php

$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();

?>

对数据库进行查询操作:

<?php

$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");

if ($stmt->execute(array($_GET['name']))) {

while ($row = $stmt->fetch()) {

print_r($row);

}

}

?>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。