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 相关文章推荐
Cannot modify header information错误解决方法
Oct 08 PHP
PHP学习笔记之二 php入门知识
Jan 12 PHP
php学习笔记 面向对象中[接口]与[多态性]的应用
Jun 16 PHP
深入for,while,foreach遍历时间比较的详解
Jun 08 PHP
php中chdir()函数用法实例
Nov 13 PHP
php通过排列组合实现1到9数字相加都等于20的方法
Aug 03 PHP
PHP 搜索查询功能实现
Nov 29 PHP
PHP判断数组是否为空的常用方法(五种方法)
Feb 08 PHP
浅谈php(codeigniter)安全性注意事项
Apr 06 PHP
Laravel5.7 Eloquent ORM快速入门详解
Apr 12 PHP
PHP 数组操作详解【遍历、指针、函数等】
May 13 PHP
JS中彻底删除JSON对象组成的数组中的元素
Sep 22 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
input file获得文件根目录简单实现
2013/04/26 PHP
解析PHP无限级分类方法及代码
2013/06/21 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
2014/06/23 PHP
CodeIgniter常用知识点小结
2016/05/26 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
php上传excel表格并获取数据
2017/04/27 PHP
JQuery的html(data)方法与&amp;lt;script&amp;gt;脚本块的解决方法
2010/03/09 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
js中array的sort()方法使用介绍
2014/02/20 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
jQuery使用drag效果实现自由拖拽div
2015/06/11 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
利用js+css+html实现固定table的列头不动
2016/12/08 Javascript
jQuery Ajax File Upload实例源码
2016/12/12 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
浅谈vue.watch的触发条件是什么
2020/11/07 Javascript
[43:51]2014 DOTA2国际邀请赛中国区预选赛 Dream Times VS TongFu
2014/05/22 DOTA
详解python中asyncio模块
2018/03/03 Python
详解Python给照片换底色(蓝底换红底)
2019/03/22 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
python读取yaml文件后修改写入本地实例
2020/04/27 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
CSS3教程:新增加的结构伪类
2009/04/02 HTML / CSS
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
美国生日蛋糕店:Bake Me A Wish!
2017/02/08 全球购物
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
俄罗斯最大的香水和化妆品网上商店:Randewoo
2020/11/05 全球购物
质量工程师岗位职责
2013/11/16 职场文书
五年级音乐教学反思
2014/02/06 职场文书
学习之星事迹材料
2014/05/17 职场文书
机械设备与数控技术专业求职信
2014/08/10 职场文书
捐款感谢信
2015/01/20 职场文书
小程序后台PHP版本部署运行 LNMP+WNMP
2021/04/01 Servers
python编程简单几行代码实现视频转换Gif示例
2021/10/05 Python
pt-archiver 主键自增
2022/04/26 MySQL