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中MD5函数使用实例代码
Jun 07 PHP
php 获取可变函数参数的函数
Aug 26 PHP
PHP之生成GIF动画的实现方法
Jun 07 PHP
PHP将HTML转换成文本的实现代码
Jan 21 PHP
PHP实现远程下载文件到本地
May 17 PHP
php生成过去100年下拉列表的方法
Jul 20 PHP
PHP Filter过滤器全面解析
Aug 09 PHP
PHP实现对图片的反色处理功能【测试可用】
Feb 01 PHP
实例讲解PHP表单处理
Feb 15 PHP
thinkphp5实现微信扫码支付
Dec 23 PHP
PHP字符串和十六进制如何实现互相转换
Jul 16 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
星际争霸秘籍
2020/03/04 星际争霸
再Docker中架设完整的WordPress站点全攻略
2015/07/29 PHP
Yii快速入门经典教程
2015/12/28 PHP
一个简单的网站访问JS计数器 刷新1次加1次访问
2012/09/20 Javascript
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
2012/11/08 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
2016/07/09 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
vue 循环加载数据并获取第一条记录的方法
2018/09/26 Javascript
Vue的Options用法说明
2020/08/14 Javascript
python同时给两个收件人发送邮件的方法
2015/04/30 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
在Pycharm中修改文件默认打开方式的方法
2019/01/17 Python
Python比较配置文件的方法实例详解
2019/06/06 Python
50行Python代码获取高考志愿信息的实现方法
2019/07/23 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
Python第三方包PrettyTable安装及用法解析
2020/07/08 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
CSS3系列之3D制作方法案例
2017/08/14 HTML / CSS
css3 边框、背景、文本效果的实现代码
2018/03/21 HTML / CSS
Speedo速比涛法国官方网站:泳衣、泳镜、泳帽、泳裤
2019/07/30 全球购物
丝芙兰意大利官方网站:Sephora.it
2019/12/13 全球购物
大专生的学习自我评价
2013/12/04 职场文书
消防安全汇报材料
2014/02/08 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
如何写辞职书
2015/02/26 职场文书
处罚决定书范文
2015/06/24 职场文书
入伍志愿书怎么写?
2019/07/19 职场文书
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS