PDO详解
来源:互联网 发布:iphone7电池检测软件 编辑:程序博客网 时间:2024/05/16 17:18
一、PDO诞生的意义
PHP对数据库支持的抽象度不够,接口不统一。每一种数据库环境都必须重新定义数据库的操作。在这种背景下,统一操作接口PDO诞生了。
在PHP中,有三种数据库连接方式:
(1)mysql 最常用,过程式风格的一种应用
(2)mysqli,mysql函数的增强版,提供面向对象和过程两种风格的API,增加了预编译和参数绑定等新的特性
(3)PDO统一抽象接口,更类似于mysqli
二、PDO常用函数
PDO中包含三个预定义类:PDO、PDOStatement和PDOException
(1)PDO类中的常用方法有:
beginTransaction():开启事务机制
commit():提交事务
exec():执行一条SQL语言并返回影响的行数
prepare():为执行准备一条SQL语句,返回语句执行后的联合结果集
query():执行一条SQL语句并返回一个结果集
rollBack():回滚一个事务
getAttribute():获取一个数据库连接属性
setAttribute():设置一个数据库连接属性
(2)PDOStatement类中常用方法有:
bindParam():绑定一个PHP变量到一个预处理语句中的参数
execute():执行一条预处理语句
fetch():从结果集中取出一行
fetchAll():从结果集中取出一个包含所有行的数组
fetchColumn():返回结果集中某一列的数据
(3)PDOException是对exception类的简单重写,这里不作介绍
三、PDO的简单使用
1.在windows系统下,开启PDO需要在php.ini中将
;extension=php_pdo_mysql.dll
前面的分号去掉,如果使用的数据库不是mysql,则将对应的数据库扩展配置前面的分号去掉
在linux或者ngnix系统下,开启PDO也需要在php配置文件中将对应的拓展前的注释符号去掉。
2.在数据库中建立test数据库和一张test表,如下图所示
在服务器目录下新建一个php脚本如下:
<?phptry{//配置数据源,数据库服务器IP和数据库名$dsn="mysql:host=127.0.0.1;dbname=test";$db=new PDO($dsn,"root","");//设置异常可捕获$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); $db->exec("set names utf8");//插入新数据$sql="insert into test(name) values('HeCheng')";$db->exec($sql); }catch(PDOException $err){echo $err->getMessage();}?>
结果如下:
三、PDO预编译和参数绑定
预编译:
<?phptry{//数据库地址,数据库,数据库账户和密码$dsn="mysql:host=127.0.0.1;dbname=test";$db=new PDO($dsn,"root",""); $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);$insert=$db->prepare("insert into test(name) values(?);");//插入$insert->execute(Array("HeChengLei")); //异常语句//$insert->execute(Array("ZhangJun","1983-09-21")); //查找$select=$db->prepare("select * from test");$select->execute();var_dump($select->fetchAll(PDO::FETCH_ASSOC)); }catch(PDOException $err){echo $err->getMessage();}?>
结果:
参数绑定:
<?php$name='HeCheng';$dsn="mysql:host=127.0.0.1;dbname=test"; $db=new PDO($dsn,"root",""); //用?代替param$sth=$db->prepare("select * from test where name=?");//参数绑定$sth->bindParam(1,$name,PDO::PARAM_STR,12);$sth->execute();var_dump($sth->fetchAll(PDO::FETCH_ASSOC)); //用:param代替param$sth=$db->prepare("select * from test where name=:name");$sth->bindParam(':name',$name,PDO::PARAM_STR,12);$sth->execute();var_dump($sth->fetchAll(PDO::FETCH_ASSOC));?>
结果:
PDO最大的特点就是引入了预编译和参数绑定,二者的关系其实就是同一件事情的不同阶段,参数绑定使用bindParam()函数传入参数。
<textarea autofocus="" style="width:1px;height:1px">.</textarea>- PDO详解
- PDO详解
- PDO函数属性详解
- PHP PDO函数库详解
- pdo函数详解
- PHP PDO函数库详解
- PHP PDO函数库详解
- PHP PDO函数库详解
- pdo函数详解
- PDO事务详解
- PHP PDO函数库详解
- PHP PDO函数库详解
- PDO对象详解
- PHP PDO函数库详解
- PHP PDO 使用详解
- PDO中事物详解
- PDO常用方法详解
- php中的PDO使用详解
- 从Action中传值到JSP页面的方法
- Nginx是什么?Nginx介绍及Nginx的优点
- github资源
- 【ppt入门教程】Win7系统怎样实现ppt双屏显示不同的内容
- NYOJ 108 士兵杀敌(一)
- PDO详解
- Gstreamer 小便签
- 常用sql语句
- iOS MD5加密字符串
- 第14周项目二——两个成员函数的类模板(2)
- Struts2中jsp前台传值到action后台的三种方式
- 第十六周(1)-阅读程序
- android 获取屏幕信息
- 取款机的语言&拆分数字&数字的秘密