php数据库抽象层 PDO

 更新时间:2011年05月07日 21:02:07   作者:  
因为这段时间工作比较忙 所以很长时间没有更新技术博客了。 在这段时间学习到了很多以前没有接触过的东西。
下面就来介绍一下数据库抽象层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连接错误时的处理:
复制代码 代码如下:

<?php
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() . "<br/>";
die();
}
?>

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

<?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);
}
}
?>

相关文章

  • linux下 C语言对 php 扩展

    linux下 C语言对 php 扩展

    linux C语言对 php 扩展的设置技巧
    2008-12-12
  • 使用HMAC-SHA1签名方法详解

    使用HMAC-SHA1签名方法详解

    本篇文章是对使用HMAC-SHA1的签名方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Yii框架调试心得--在页面输出执行sql语句

    Yii框架调试心得--在页面输出执行sql语句

    这篇文章主要介绍了Yii框架调试心得--在页面输出执行sql语句,需要的朋友可以参考下
    2014-12-12
  • php批量删除cookie的简单实现方法

    php批量删除cookie的简单实现方法

    这篇文章主要介绍了php批量删除cookie的简单实现方法,实例分析了删除单个cookie及数组遍历的方式批量删除cookie的技巧与相关注意事项,需要的朋友可以参考下
    2015-01-01
  • 基于PHP实现堆排序原理及实例详解

    基于PHP实现堆排序原理及实例详解

    这篇文章主要介绍了基于PHP实现堆排序原理及实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 修改WordPress中文章编辑器的样式的方法详解

    修改WordPress中文章编辑器的样式的方法详解

    这篇文章主要介绍了修改WordPress中文章编辑器的样式的方法详解,同时文中也推荐了两款取代默认文章编辑器的插件,需要的朋友可以参考下
    2015-12-12
  • PHP将session信息存储到数据库的类实例

    PHP将session信息存储到数据库的类实例

    这篇文章主要介绍了PHP将session信息存储到数据库的类,实例分析了php封装的session信息存储到数据库的类,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP Session条件竞争超详细讲解

    PHP Session条件竞争超详细讲解

    这篇文章主要介绍了PHP Session条件竞争,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-12-12
  • php环境无法上传文件的解决方法

    php环境无法上传文件的解决方法

    对于dedecms 你没有选择上传文件,discuz批量上传显示成功,但看不到图片,ecshop商城等无法上传问题,只要是PHP的,而且代码本身没有问题.以下都适用
    2014-04-04
  • php使用pdo连接sqlite3的配置示例

    php使用pdo连接sqlite3的配置示例

    这篇文章主要介绍了php使用pdo连接sqlite3的配置方法,结合实例形式较为详细的分析了php基于pdo操作sqlite3的相关注意事项,需要的朋友可以参考下
    2016-05-05

最新评论