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 URL地址获取函数代码(端口等) 推荐
May 15 PHP
PHP gbk环境下json_dencode传送来的汉字
Nov 13 PHP
php处理restful请求的路由类分享
Feb 27 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
Jun 08 PHP
smarty内置函数config_load用法实例
Jan 22 PHP
PHP查询快递信息的方法
Mar 07 PHP
php递归遍历多维数组的方法
Apr 18 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
Jun 20 PHP
Joomla框架实现字符串截取的方法示例
Jul 18 PHP
PHP设计模式之单例模式定义与用法分析
Mar 26 PHP
tp5 实现列表数据根据状态排序
Oct 18 PHP
Cookie跨域问题解决方案代码示例
Nov 24 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 $_FILES中error返回值详解
2014/01/30 PHP
讨论javascript(一)工厂方式 js面象对象的定义方法
2009/12/15 Javascript
jquery validator 插件增加日期比较方法
2010/02/21 Javascript
打造基于jQuery的高性能TreeView(asp.net)
2011/02/23 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
jQuery操作Select选择的Text和Value(获取/设置/添加/删除)
2013/03/06 Javascript
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
bootstrap实现每隔5秒自动轮播效果
2016/12/20 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
浅谈angular2子组件的事件传递(任意组件事件传递)
2018/09/30 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
微信小程序服务器日期格式化问题
2020/01/07 Javascript
用Python的urllib库提交WEB表单
2009/02/24 Python
python类型强制转换long to int的代码
2013/02/10 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
2020/06/24 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
Django DRF路由与扩展功能的实现
2020/06/03 Python
荷兰在线体育用品商店:Avantisport.nl
2018/07/04 全球购物
护理自荐信范文
2013/10/05 职场文书
主管职责范文
2013/11/09 职场文书
美术毕业生求职信
2014/02/25 职场文书
期末评语大全
2014/05/04 职场文书
2014年质量管理工作总结
2014/12/01 职场文书
2014收银员工作总结范文
2014/12/16 职场文书
小学语文复习计划
2015/01/19 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
2015年教研工作总结
2015/05/23 职场文书
我的生日感言
2015/08/03 职场文书
担保书格式范文
2015/09/22 职场文书
关于React Native使用axios进行网络请求的方法
2021/08/02 Javascript
Python+Selenium实现读取网易邮箱验证码
2022/03/13 Python