php数据库抽象层 PDO


Posted in PHP onMay 07, 2011

下面就来介绍一下数据库抽象层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 相关文章推荐
escape unescape的php下的实现方法
Apr 27 PHP
php adodb连接mssql解决乱码问题
Jun 12 PHP
php连接函数implode与分割explode的深入解析
Jun 26 PHP
php Calender(日历)代码分享
Jan 03 PHP
PHP json_decode函数详细解析
Feb 17 PHP
CI框架中zip类应用示例
Jun 17 PHP
学习php设计模式 php实现访问者模式(Visitor)
Dec 07 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
Dec 24 PHP
PHP随机数 C扩展随机数
May 04 PHP
超强多功能php绿色集成环境详解
Jan 25 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
Feb 04 PHP
php实现数字补零的方法总结
Sep 12 PHP
php cookies中删除的一般赋值方法
May 07 #PHP
php中通过Ajax如何实现异步文件上传的代码实例
May 07 #PHP
php 安全过滤函数代码
May 07 #PHP
PHP 遍历文件实现代码
May 04 #PHP
PHP中使用CURL伪造来路抓取页面或文件
May 04 #PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
May 04 #PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
May 04 #PHP
You might like
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
PHP数据类型之布尔型的介绍
2013/04/28 PHP
ThinkPHP实现图片上传操作的方法详解
2017/05/08 PHP
详解Yii2.0使用AR联表查询实例
2017/06/16 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
详解关于php的xdebug配置(编辑器vscode)
2019/01/29 PHP
表单序列化与jq中的serialize使用示例
2014/02/21 Javascript
详解JavaScript中undefined与null的区别
2014/03/29 Javascript
JS在可编辑的div中的光标位置插入内容的方法
2014/11/20 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
2015/07/05 Javascript
javascript中JSON对象与JSON字符串相互转换实例
2015/07/11 Javascript
探究JavaScript函数式编程的乐趣
2015/12/14 Javascript
详解Jquery实现ready和bind事件
2016/04/14 Javascript
详解JavaScript常量定义
2017/01/03 Javascript
AngularJS Controller作用域
2017/01/09 Javascript
NestJs 静态目录配置详解
2019/03/12 Javascript
vue实现购物车结算功能
2020/06/18 Javascript
jQuery+ajax实现用户登录验证
2020/09/13 jQuery
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
Python 数据结构之旋转链表
2017/02/25 Python
python3调用百度翻译API实现实时翻译
2018/08/16 Python
python调用外部程序的实操步骤
2019/03/04 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
python Autopep8实现按PEP8风格自动排版Python代码
2021/03/02 Python
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
人力资源部门的主要职能
2014/02/22 职场文书
业务员自荐信范文
2014/04/20 职场文书
一年级评语大全
2014/04/23 职场文书
学校评语大全
2014/05/06 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
汽车专业求职信
2014/06/05 职场文书
计算机科学与技术专业求职信
2014/09/03 职场文书
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL