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自动生成后台导航网址的最佳方法
Aug 27 PHP
关于php内存不够用的快速解决方法
Oct 26 PHP
php中session退出登陆问题
Feb 27 PHP
php基于表单密码验证与HTTP验证用法实例
Jan 06 PHP
codeigniter中view通过循环显示数组数据的方法
Mar 20 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 PHP
php实现简单的MVC框架实例
Sep 23 PHP
学习php设计模式 php实现享元模式(flyweight)
Dec 07 PHP
PHP创建word文档的方法(平台无关)
Mar 29 PHP
php连接微软MSSQL(sql server)完全攻略
Nov 27 PHP
微信公众平台开发(五) 天气预报功能开发
Dec 03 PHP
yii2 commands模式以及配置crontab定时任务的方法
Aug 19 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 使用array函数实现分页
2015/02/13 PHP
php正则表达式基本知识与应用详解【经典教程】
2017/04/17 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
2019/07/24 PHP
简体中文转换繁体中文(实现代码)
2013/12/25 Javascript
jquery 字符串切割函数substring的用法说明
2014/02/11 Javascript
Jquery Post处理后不进入回调的原因及解决方法
2014/07/15 Javascript
Javascript 多物体运动的实现
2014/12/24 Javascript
JavaScript的函数式编程基础指南
2016/03/19 Javascript
JS+Canvas绘制时钟效果
2020/08/20 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
2020/07/19 Javascript
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
[01:02:38]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第二场 1月10日
2021/03/11 DOTA
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
python实现定时同步本机与北京时间的方法
2015/03/24 Python
Python的时间模块datetime详解
2017/04/17 Python
Python模块结构与布局操作方法实例分析
2017/07/24 Python
Python进阶之尾递归的用法实例
2018/01/31 Python
用python写测试数据文件过程解析
2019/09/25 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
CSS3实现图片抽屉式效果的示例代码
2019/11/06 HTML / CSS
HTML5 实战PHP之Web页面表单设计
2011/10/09 HTML / CSS
Feelunique中文官网:欧洲最大化妆品零售电商
2020/07/10 全球购物
模具专业求职信
2014/06/26 职场文书
安全目标管理责任书
2014/07/25 职场文书
党员干部观看《周恩来四个昼夜》思想汇报
2014/09/10 职场文书
学校2014年度工作总结
2014/12/06 职场文书
先进学校事迹材料
2014/12/30 职场文书
幼师中班个人总结
2015/02/12 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书
心得体会该怎么写呢?
2019/06/27 职场文书
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
2021/05/17 Python
MySQL的安装与配置详细教程
2021/06/26 MySQL
十大最帅动漫男主 碓冰拓海上榜,第一是《灌篮高手》男主角
2022/03/18 日漫