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中使用Oracle数据库(3)
Oct 09 PHP
php 执行系统命令的方法
Jul 07 PHP
php 无限分类的树类代码
Dec 03 PHP
php下将多个数组合并成一个数组的方法与实例代码
Feb 03 PHP
php模板中出现空行解决方法
Mar 08 PHP
ThinkPHP分页类使用详解
Mar 05 PHP
thinkphp使用phpmailer发送邮件的方法
Nov 24 PHP
thinkphp3.0输出重复两次的解决方法
Dec 19 PHP
php使用fputcsv()函数csv文件读写数据的方法
Jan 06 PHP
php中preg_match的isU代表什么意思
Oct 01 PHP
php利用递归实现删除文件目录的方法
Sep 23 PHP
laravel实现于语言包的完美切换方法
Sep 29 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中header和session_start前不能有输出原因分析
2013/01/11 PHP
浅谈使用PHP开发微信支付的流程
2015/10/04 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
javascript中callee与caller的区别分析
2015/04/20 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
JavaScript中Number.MAX_VALUE属性的使用方法
2015/06/04 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
vue自定义过滤器创建和使用方法详解
2017/11/06 Javascript
JavaScript递归函数定义与用法实例分析
2019/01/24 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
微信小程序在线客服自动回复功能(基于node)
2019/07/03 Javascript
vue+mock.js实现前后端分离
2019/07/24 Javascript
解决layer.msg 不居中 ifram中的问题
2019/09/05 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
vue之a-table中实现清空选中的数据
2019/11/07 Javascript
python字符串连接的N种方式总结
2014/09/17 Python
python下载文件时显示下载进度的方法
2015/04/02 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
python numpy函数中的linspace创建等差数列详解
2017/10/13 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
Shopty西班牙:缝纫机在线销售
2018/01/26 全球购物
精选奢华:THE LIST
2019/09/05 全球购物
八年级历史教学反思
2014/01/10 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
先进班集体申报材料
2014/12/26 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
学习心理学心得体会
2016/01/22 职场文书
MySQL数据库查询进阶之多表查询详解
2022/04/08 MySQL