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 相关文章推荐
php 之 没有mysql支持时的替代方案
Oct 09 PHP
PHP 编程的 5个良好习惯
Feb 20 PHP
php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
May 16 PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
Jun 10 PHP
PHP的autoload机制的实现解析
Sep 15 PHP
PHP中::、-&amp;gt;、self、$this几种操作符的区别介绍
Apr 24 PHP
PHP字符串中特殊符号的过滤方法介绍
Feb 18 PHP
php中关于socket的系列函数总结
May 18 PHP
CodeIgniter分页类pagination使用方法示例
Mar 28 PHP
PHP文件上传操作实例详解
Sep 27 PHP
使用php实现网站验证码功能【推荐】
Feb 09 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
Aug 01 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
PHP写入WRITE编码为UTF8的文件的实现代码
2008/07/07 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
document.onreadystatechange事件的用法分析
2009/10/17 Javascript
JS实现的网页倒计时数字时钟效果
2015/03/02 Javascript
JS判断元素是否在数组内的实现代码
2016/03/30 Javascript
javascript HTML5 Canvas实现圆盘抽奖功能
2016/04/11 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
利用Node.js对文件进行重命名
2017/03/12 Javascript
js 数字、字符串、布尔值的转换方法(必看)
2017/04/07 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
js登录滑动验证的实现(不滑动无法登陆)
2018/01/03 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
2019/10/16 Javascript
python3.0 字典key排序
2008/12/24 Python
python 文件和路径操作函数小结
2009/11/23 Python
Python基础语言学习笔记总结(精华)
2017/11/14 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
python交互界面的退出方法
2019/02/16 Python
浅析Python 读取图像文件的性能对比
2019/03/07 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
2020/07/14 Python
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
小天鹅官方商城:LittleSwan
2017/06/16 全球购物
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
某公司的.net工程师面试题笔试题
2013/11/22 面试题
数学专业毕业生自荐信
2013/11/10 职场文书
结构工程个人自荐信范文
2013/11/30 职场文书
元旦晚会上单位领导演讲稿
2014/01/05 职场文书
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
幼儿园安全生产月活动总结
2014/07/05 职场文书
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
打架检讨书范文
2015/01/27 职场文书
python 远程执行命令的详细代码
2022/02/15 Python
MYSQL中文乱码问题的解决方案
2022/06/14 MySQL
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript