php数据库抽象层 PDO

yipeiwu_com5年前PHP代码库
下面就来介绍一下数据库抽象层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);
}
}
?>

相关文章

php 连接mssql数据库 初学php笔记

复制代码 代码如下: <?php $serverSite="."; $db="phpdemo"; $name="sa"; $pass="sa"; $conn=@mssql_conn...

微信公众号点击菜单即可打开并登录微站的实现方法

微信公众号点击菜单即可打开并登录微站的实现方法

本文实例讲述了微信公众号点击菜单即可打开并登录微站的实现方法。分享给大家供大家参考。具体分析如下: 总体来说,微信公众号点击菜单即可打开并登录微站实现步骤比较复杂,但很多微站在己用上了,...

phpMyAdmin 安装及问题总结

1/无法载入mcrypt扩展,请检查PHP配置; 2/配置文件现在需要绝密的短语密码(blowfish_secret); 3/#2003-服务器没有响应。 由于目前phpMyAdmin的...

php中var_export与var_dump的区别分析

一 var_dump (PHP 3 >= 3.0.5, PHP 4, PHP 5) var_dump -- 打印变量的相关信息 描述 void var_dump ( mixed e...

phpMyAdmin 链接表的附加功能尚未激活的问题

phpMyAdmin 链接表的附加功能尚未激活的问题

安装phpMyAdmin的时候我还是没有手动配置config文件,而是使用了它的setup功能。 除了 服务器名称 和 认证方式 以外都使用了默认值。 服务器名称自己随便输入了一个,认证...