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 相关文章推荐
搜索引擎技术核心揭密
Oct 09 PHP
如何做到多笔资料的同步
Oct 09 PHP
PHP 如何向 MySQL 发送数据
Oct 09 PHP
Mysql的GROUP_CONCAT()函数使用方法
Mar 28 PHP
PHP执行linux系统命令的常用函数使用说明
Apr 27 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
Aug 09 PHP
php调整gif动画图片尺寸示例代码分享
Dec 05 PHP
php+mysql查询实现无限下级分类树输出示例
Oct 03 PHP
PHP面向对象之事务脚本模式(详解)
Jun 07 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
Aug 30 PHP
PHP空值检测函数与方法汇总
Nov 19 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
Jun 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
提升PHP执行速度全攻略(下)
2006/10/09 PHP
使用PHP获取汉字的拼音(全部与首字母)
2013/06/27 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
JavaScript判断变量是否为空的自定义函数分享
2015/01/31 Javascript
js限制文本框的输入内容代码分享(3类)
2015/08/20 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
2015/11/02 Javascript
jquery网页日历显示控件calendar3.1使用详解
2016/11/24 Javascript
JS随机数产生代码分享
2018/02/24 Javascript
解析原来浏览器原生支持JS Base64编码解码
2019/08/12 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
Vue的props父传子的示例代码
2020/05/20 Javascript
为什么推荐使用JSX开发Vue3
2020/12/28 Vue.js
[41:21]夜魇凡尔赛茶话会 第三期02:看图识人
2021/03/11 DOTA
python实现mysql的单引号字符串过滤方法
2015/11/14 Python
解决Python 遍历字典时删除元素报异常的问题
2016/09/11 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
python 猴子补丁(monkey patch)
2019/06/26 Python
使用pycharm在本地开发并实时同步到服务器
2019/08/02 Python
python sqlite的Row对象操作示例
2019/09/11 Python
Python Sqlalchemy如何实现select for update
2020/10/12 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
Html5 canvas实现粒子时钟的示例代码
2018/09/06 HTML / CSS
canvas压缩图片以及卡片制作的方法示例
2018/12/04 HTML / CSS
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
Linux文件操作命令都有哪些
2016/07/23 面试题
护士自荐信范文
2013/12/15 职场文书
物业总经理助理岗位职责
2014/06/29 职场文书
学习作风建设心得体会
2014/10/22 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python