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 身份证号验证函数
May 07 PHP
php数组函数序列之array_search()- 按元素值返回键名
Nov 04 PHP
codeigniter使用技巧批量插入数据实例方法分享
Dec 31 PHP
destoon官方标签大全
Jun 20 PHP
PHP使用MPDF类生成PDF的方法
Dec 08 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
Oct 08 PHP
数组任意位置插入元素,删除特定元素的实例
Mar 02 PHP
PHP实现根据数组某个键值大小进行排序的方法
Mar 13 PHP
PHP实现网站应用微信登录功能详解
Apr 11 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
Jun 03 PHP
php面试实现反射注入的详细方法
Sep 30 PHP
PHP中类与对象功能、用法实例解读
Mar 27 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获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
2015/01/07 PHP
PHP中使用Memache作为进程锁的操作类分享
2015/03/30 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
2015/12/14 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
二行代码解决全部网页木马
2008/03/28 Javascript
JavaScript学习笔记(十)
2010/01/17 Javascript
js中substring和substr的详细介绍与用法
2013/08/29 Javascript
javascript打印html内容功能的方法示例
2013/11/28 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
JavaScript中Number.MIN_VALUE属性的使用示例
2015/06/04 Javascript
JS实现的自定义右键菜单实例二则
2015/09/01 Javascript
JS动态添加iframe的代码
2015/09/14 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
2016/06/06 Javascript
省市区三级联动jquery实现代码
2020/04/15 Javascript
用nodeJS搭建本地文件服务器的几种方法小结
2017/03/16 NodeJs
JS中的三个循环小结
2017/06/20 Javascript
关于vue-resource报错450的解决方案
2017/07/24 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
2017/08/17 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
2017/09/11 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
2018/02/27 Javascript
clipboard.js在移动端复制失败的解决方法
2018/06/13 Javascript
vue将单页面改造成多页面应用的方法
2018/11/25 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
原生js实现文件上传、下载、封装等实例方法
2020/01/05 Javascript
python使用心得之获得github代码库列表
2014/06/25 Python
解决python删除文件的权限错误问题
2018/04/24 Python
对python中dict和json的区别详解
2018/12/18 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
python对一个数向上取整的实例方法
2020/06/18 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
金融保险专业求职信
2014/09/03 职场文书
Java常用工具类汇总 附示例代码
2021/06/26 Java/Android
Go web入门Go pongo2模板引擎
2022/05/20 Golang