- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
04PDO增删改查预处理
回顾
接口:interface,接口内部只能有常量和公有的抽象方法。只能被实现implements。
PHP重载:当访问一个不存在的或者没有权限访问的属性或者方法的时候,会自动触发魔术方法。
属性重载
方法重载
对象保存:将对象结构及其属性内容保存到外部文件。
序列化:serialize,将一个复杂的数据类型变成一个带有结构的字符串
反序列化:unserialize,将一个字符串转化成对应的复杂数据类型(如果要实现对一个对象字符串进行反序列化,必须保证该对象的类已经存在:自动加载)
对象遍历:foreach,遍历对象的公有属性(将公有属性的值和属性名赋值给对应$value和$key)
接口iterator:类实现Iterator接口
current:获取当前数组元素的值$this-hobby[$this-position]
key:获取当前下标
next:数组指针下移
rewind:重置指针
valid:判断当前指针是否有效,使用key函数判断数组下标
快速排序:1.找到一个基准元素;2比较数组中其他所有元素;3.将与基准元素比较后的结果根据大小放到两个不同的数组中;4.数组递归调用函数自己;5.返回一个已经排好序的数组(array_merge())
递归点:数组
递归出口:数组元素只有一个(或者为空)的时候
需求:一个项目,下面有两个团队:要求可以随意的切换数据库(mysql,Oracle),一个团队负责做mysql,一个团队负责做Oracle。(公共接口已经做好)
但是以上解决方案需要用户每次去手动修改代码来继承不同的类。
PDO
PDO:PHP Data Object,PHP数据对象(数据抽象层)
作用:能够解决用户在需要使用不同的数据库的时候进行来回的切换,PDO能够自动的进行数据库的切换,而且还能将所有的有可能存在的不兼容的语法进行兼容性处理。
加载PDO
使用PDO之前必须要开启PDO扩展
在php.ini文件中找到PDO扩展
开启Mysqlpdo扩展
注:如果PHP版本比较低的情况下,需要额外的去开启pdo扩展,再开启pdo对应的数据库扩展
重启服务器
使用PDO
PDO这一套不单只是一个类,有三个类
PDO类:负责数据库的连接,分发还SQL语句的发送
PDOStatement类:结果集类,专门用来出来查询的结果,还有其他功能(预处理)
PDOException类:用异常机制处理PDO类所碰到的问题
操作数据库步骤
连接认证
PDO::__construct($dsn,$user,$pass)
$dsn:由两个部分构成:数据源,数据库信息
$dsn:mysql:host=localhost;port=3306;dbname=project
$pdo = new PDO(‘mysql:host=localhost;port=3306;dbname=project’,’root’,’root’);
组织SQL语句
发送SQL语句给服务器,接收执行结果
PDOStatement PDO::query:执行有结果集返回的查询语句
从结果集获取数据
PDOStatement::fetch:从结果集中获取一行记录
关闭连接
PDO没有提供关闭连接的方法
unset(PDO对象);
$pdo = null;
PDO增删改查
新增数据
修改数据
删除数据
查询数据
查询处理
在查询得到的结果集处理时,默认的使用fetch得到的是一个混合数组,可以通过方法指定参数来修改获取数据的方式。
fetch方法指定参数
关联数组
索引数组
fetchAll
自定义获取所有结果集内容
作业:使用while循环实现所有的结果集内容的遍历。
fetchColumn
意义
减少代码冗余
提高代码执行效率
fetchObject
stdClass:标准类,空类
$str = ‘abcd’;
$o = (object)$str; //得到的对象就是stdClass对象
指定自己类
bindColumn与fetch
作用:为了操作方便,为了弥补fetchColumn只能获取一个字段值的缺陷。
预处理
在真正执行某条SQL语句之前,先将SQL语句准备好,在执行过程中再绑定数据
语法:
准备预处理
prepare 预处理名字 from ‘要执行的SQL语句’
执行预处理
execute 预处理名字 [using 变量]
预处理高级使用:可以在预处理过程中使用一些列不确定的内容。
PDO预处理
可以使用多种方式实现预处理:指的是在绑定数据进行执行的时候,可以有多种方式。
使用数组指定预处理变量
准备预处理语句(发送给服务器,让服务器准备预处理语句)
PDOStatement PDO::prepare:类似exec将一条
文档评论(0)