数据库抽象层 PDO

发布于 2022-10-15 07:52:19 字数 3777 浏览 23 评论 0

转:confusing

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

PDO(PHP Data Objects)是一个轻量级的PHP扩展,提供了一个数据访问抽象层。还要就是PDO只能在PHP5.0以上版本使用。

下面来介绍一下PDO常用的预定义常量:

PDO:ARAM_BOOL (integer)    表示布尔数据类型

PDO:ARAM_NULL (integer)    表示数据类型为NULL的SQL

PDO:ARAM_INT (integer)      表示为integer数据类型的SQL

PDO:ARAM_STR (integer)      表示为char varchar 或者其他字符串的数据类型的SQL

PDO:ARAM_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. 1 <?php
  2. 2 try {
  3. 3$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
  4. 4     foreach($dbh->query('SELECT * from FOO') as $row) {
  5. 5         print_r($row);
  6. 6     }
  7. 7     $dbh = null;
  8. 8 } catch (PDOException $e) {
  9. 9     print "Error!: " . $e->getMessage() . "<br/>";
  10. 10     die();
  11. 11 }
  12. 12 ?>

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

  1. <?php
  2. $stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
  3. $stmt->bindParam(':name', $name);$stmt->bindParam(':value', $value);// insert one row$name = 'one';
  4. $value = 1;$stmt->execute();// insert another row with different values$name = 'two';
  5. $value = 2;
  6. $stmt->execute();
  7. ?>

复制代码

  1. <?php
  2. $stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
  3. $stmt->bindParam(1, $name);
  4. $stmt->bindParam(2, $value);// insert one row$name = 'one';
  5. $value = 1;$stmt->execute();// insert another row with different values$name = 'two';
  6. $value = 2;
  7. $stmt->execute();
  8. ?>

复制代码对数据库进行查询操作:

  1. <?php
  2. $stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
  3. if ($stmt->execute(array($_GET['name']))) {
  4.   while ($row = $stmt->fetch()) {
  5.     print_r($row);
  6. }}?>

复制代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

若相惜即相离 2022-10-22 07:52:19

学习了,明天接着学。

初与友歌 2022-10-22 07:52:19

东西太多了,一下子看不过来

薄荷梦 2022-10-22 07:52:19

这帖子很不错哦-----顶君一下!!!!!!!!!

深圳进口报关
http://www.chinahq-import.com/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文