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 相关文章推荐
用ADODB来让PHP操作ACCESS数据库的方法
Dec 31 PHP
PHP 存储文本换行实现方法
Jan 05 PHP
在PHP中养成7个面向对象的好习惯
Jan 28 PHP
php在线代理转向代码
May 05 PHP
php中获取主机名、协议及IP地址的方法
Nov 18 PHP
php上传图片生成缩略图(GD库)
Jan 06 PHP
详解WordPress开发中get_header()获取头部函数的用法
Jan 08 PHP
thinkPHP查询方式小结
Jan 09 PHP
Smarty分页实现方法完整实例
May 11 PHP
浅谈PHP发送HTTP请求的几种方式
Jul 25 PHP
PHP使用mongoclient简单操作mongodb数据库示例
Feb 08 PHP
基于Laravel 多个中间件的执行顺序详解
Oct 21 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
laravel安装和配置教程
2014/10/29 PHP
PHP从FLV文件获取视频预览图的方法
2015/03/12 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
php读取本地json文件的实例
2018/03/07 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
2019/12/13 PHP
jquery 页面全选框实践代码
2010/04/02 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
jquery获得同源iframe内body下标签的值的方法
2014/09/25 Javascript
node.js超时timeout详解
2014/11/26 Javascript
JS实现自适应高度表单文本框的方法
2015/02/25 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
javascript实现在线客服效果
2015/07/15 Javascript
JavaScript中this详解
2015/09/01 Javascript
深入浅析JavaScript中prototype和proto的关系
2015/11/15 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
2016/10/13 Javascript
深入理解jQuery()方法的构建原理
2016/12/05 Javascript
JS声明式函数与赋值式函数实例分析
2016/12/13 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
vue实现百度搜索下拉提示功能实例
2017/06/14 Javascript
js实现登录与注册界面
2017/11/01 Javascript
如何编写一个完整的Angular4 FormText 组件
2017/11/18 Javascript
vue移动UI框架滑动加载数据的方法
2018/03/12 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
用Python将mysql数据导出成json的方法
2018/08/21 Python
Python 解决相对路径问题:&quot;No such file or directory&quot;
2020/06/05 Python
css3实现信纸/同学录效果的示例代码
2018/12/11 HTML / CSS
惠普墨西哥官方商店:HP墨西哥
2016/12/01 全球购物
介绍一下OSI七层模型
2012/07/03 面试题
人力资源管理毕业求职信
2014/08/05 职场文书
老干部工作先进事迹
2014/08/17 职场文书
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
2022/04/21 Python