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 mail 通过Windows的SMTP发送邮件失败的解决方案
May 27 PHP
在yii中新增一个用户验证的方法详解
Jun 20 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
Feb 13 PHP
PHP中exec函数和shell_exec函数的区别
Aug 20 PHP
PHP实现视频文件上传完整实例
Aug 28 PHP
浅析PHP中strlen和mb_strlen的区别
Aug 31 PHP
php二维数组合并及去重复的方法
Mar 04 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
Dec 23 PHP
PHP的几个常用加密函数
Feb 03 PHP
PHP中STDCLASS用法实例分析
Nov 11 PHP
php curl上传、下载、https登陆实现代码
Jul 23 PHP
php进程daemon化的正确实现方法
Sep 06 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小技巧之JS和CSS优化工具Minify的使用方法
2014/05/19 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
laravel 出现command not found问题的解决方案
2019/10/23 PHP
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
Javascript中string转date示例代码
2013/11/01 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
浅谈Javascript中Object与Function对象
2015/09/26 Javascript
Javascript类型转换的规则实例解析
2016/02/23 Javascript
详解vue-router基本使用
2017/04/18 Javascript
基于ajax和jsonp的原生封装(实例)
2017/10/16 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
2018/01/24 Javascript
小程序云开发初探(小结)
2018/10/24 Javascript
NodeJs之word文件生成与解析的实现代码
2019/04/01 NodeJs
Python中每次处理一个字符的5种方法
2015/05/21 Python
使用python绘制常用的图表
2016/08/27 Python
sublime text 3配置使用python操作方法
2017/06/11 Python
分析python动态规划的递归、非递归实现
2018/03/04 Python
总结python中pass的作用
2019/02/27 Python
python能做什么 python的含义
2019/10/12 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
Python安装tar.gz格式文件方法详解
2020/01/19 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
WoolOvers澳洲官方网站:英国针织服装公司
2018/05/13 全球购物
Jimmy Choo美国官网:周仰杰鞋子品牌
2018/06/08 全球购物
商得四方公司面试题(gid+)
2014/04/30 面试题
大学生收银员求职信分享
2014/01/02 职场文书
预备党员党课思想汇报
2014/01/13 职场文书
销售人员自我评价
2014/02/01 职场文书
幼儿园毕业家长感言
2014/02/10 职场文书
个人工作主要事迹
2014/05/08 职场文书
孝老爱亲事迹材料
2014/12/24 职场文书
学习经验交流会总结
2015/11/02 职场文书
职场:企业印章管理制度(模板)
2019/10/18 职场文书
MySQL的InnoDB存储引擎的数据页结构详解
2022/03/03 MySQL