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 编写的日历
Oct 09 PHP
PHP中使用mktime获取时间戳的一个黑色幽默分析
May 31 PHP
PHP跨时区(UTC时间)应用解决方案
Jan 11 PHP
smarty基础之拼接字符串的详解
Jun 18 PHP
使用array_map简单搞定PHP删除文件、删除目录
Oct 29 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
Nov 19 PHP
php简单解析mysqli查询结果的方法(2种方法)
Jun 29 PHP
PHP实现大数(浮点数)取余的方法
Feb 18 PHP
php实现数组重复数字统计实例
Sep 30 PHP
thinkPHP事务操作简单案例分析
Oct 17 PHP
在 Laravel 6 中缓存数据库查询结果的方法
Dec 11 PHP
php命令行模式代码实例详解
Feb 26 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面向对象的进阶学习(抽像类、接口、final、类常量)
2012/05/07 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
非常实用的php验证码类
2016/05/15 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
JsEasy简介 JsEasy是什么?与下载
2007/03/07 Javascript
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
2010/11/23 Javascript
JS通过Cookie判断页面是否为首次打开
2016/02/05 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
2016/04/05 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
2016/12/20 Javascript
JavaScript函数参数的传递方式详解
2017/03/06 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
vue 路由嵌套高亮问题的解决方法
2018/05/17 Javascript
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
2018/12/11 jQuery
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
用python 批量更改图像尺寸到统一大小的方法
2018/03/31 Python
使用pip发布Python程序的方法步骤
2018/10/11 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
Python 中使用 PyMySQL模块操作数据库的方法
2019/11/10 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
2019/11/19 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
关于windows下Tensorflow和pytorch安装教程
2020/02/04 Python
canvas实现圆绘制的示例代码
2019/09/11 HTML / CSS
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
Chinti & Parker官网:奢华羊绒女装和创新针织设计
2021/01/01 全球购物
学生自我鉴定范文
2013/10/04 职场文书
后勤自我鉴定
2013/10/13 职场文书
SQL Server连接查询的实用教程
2021/04/07 SQL Server
pytorch model.cuda()花费时间很长的解决
2021/06/01 Python
win10输入法不见了只能打出字母怎么解决?
2022/08/05 数码科技