使用方式  特点一:支持跨数据库

      1:首先实例化PDO,创建PDO对象的四个必备参数:host(哪一种类型的数据库,mysql/orcal/SQLserver等);dbname(数据库的名称);charset(设置数据库的字符  集);port(端口号);

      

    2.发送sql指令:分为两种;$pdo->query();//返回的是结果是对象,需要首先对结果集进行遍历,处理单条结果集用fetch(),如果需要处理所有结果集则使用fetchAll();

  

  

    第二种:$pdo->exec(数据增删改差操作指令);//返回的是受影响的行数;注意:在PDO中有LastInsertId,这是PDO中独一无二的,其他地方都不能使用;

第二种特点:支持预处理机制;

      PDO中的预处理机制:PDO实际上并没有真正使用预处理,是在模拟预处理方式,在将语句传给sql服务器之前会把参数数据插入到语句中,这样更安全,也避免了许多潜在的SQL注入;关键字:prepare;

    

    我们使用了PDO的预处理机制,首先将sql语句插入数据库中,并在实际参数位置使用了?(占位符)或者:name的方式来替代;这样有助于,防止恶意的sql注入,因为用户不论向数据库里传递什么数据,都会被传进占位符里并当成一个普通字符串解析;同时也有利于提高数据库执行效率,因为数据库已经做好了相关的增删改差准备,只需要用户的实际数据传到即可执行;

    注意:有两种创建参数的方法,命名的与匿名的(不可以出现在同一个语句中),然后可以通过绑定参数的形式在巧劲输入;

    绑定参数的形式:bindValue;在使用命名参数的时候一定要包含进冒号(:).PDO还支持一个bindParam方法,可以通过绑定参数值,也就是它只在语句执行时查找相应的数值;

第三种:支持事务回滚

    事务的概念:一个事务就是执行一组查询,但是并不保存他们影响到的数据库中,这样的好处就是如果执行了4条相互依赖的插入语句,当有一条失败后你可以回滚使其他数据不能插入到数据库中,确保相互依赖的字段能够正确插入,但需要用的数据库引擎支持事务;

    在数据库命令下:show create tabe + 表名查看数据库引擎,如果不是innodb引擎,则使用alert table 表名 engine = innodb进行引擎修改;

    

  

 在使用事务时首先开启事务:beginTransaction()方法开启一个事务,在开启事务后可以执行数据操作,如果事务执行失败则进行rollback事务回滚;

  

你可以选择PDO将返回的是什么类型的结果集,如PDO::FETCH_ASSOC,会允许你使用  $result['column_na']或者PDO::FETCH_OBJ,返回一个匿名对象,以便使用$result->column_name;

  

[麦先生]学习PDO循序渐进使用方式的更多相关文章

  1. [转]Windows网络编程学习-面向连接的编程方式

    直接附上原文链接:windows 网络编程学习-面向连接的编程方式

  2. JavaWeb学习——页面跳转方式

    JavaWeb学习——页面跳转方式 摘要:本文主要学习了请求转发和响应重定向,以及两者之间的区别. 请求转发 相关方法 使用HttpServletRequest对象的 getRequestDispat ...

  3. 阿里云Web应用防火墙采用规则引擎、语义分析和深度学习引擎相结合的方式防护Web攻击

    深度学习引擎最佳实践 {#concept_1113021 .concept} 阿里云Web应用防火墙采用多种Web攻击检测引擎组合的方式为您的网站提供全面防护.Web应用防火墙采用规则引擎.语义分析和 ...

  4. 学习PDO中的错误与错误处理模式

    在 PDO 的学习过程中,我们经常会在使用事务的时候加上 try...catch 来进行事务的回滚操作,但是大家有没有注意到默认情况下 PDO 是如何处理错误语句导致的数据库操作失败问题呢?今天,我们 ...

  5. CANopen学习——PDO

    查找资料时,发现一个很好的博客,博主剖析的通俗易懂 http://www.cnblogs.com/winshton/p/4897556.html   PDO定义: 过程数据对象,用来传输实时数据.因为 ...

  6. mybatis源码学习--spring+mybatis注解方式为什么mybatis的dao接口不需要实现类

    相信大家在刚开始学习mybatis注解方式,或者spring+mybatis注解方式的时候,一定会有一个疑问,为什么mybatis的dao接口只需要一个接口,不需要实现类,就可以正常使用,笔者最开始的 ...

  7. Tornado学习笔记(三) 请求方式/状态码

    本章我们来学习 Tornado 支持的请求方式 请求方式 Tornado支持任何合法的HTTP请求(GET.POST.PUT.DELETE.HEAD.OPTIONS).你可以非常容易地定义上述任一种方 ...

  8. python学习: 如何循序渐进学习Python语言

    大家都知道Python语言是一种新兴的编程语言.1989年,Python就由Guido van Rossum发明.Python一直发展态势很好. 原因有几点:1.跨平台性好.Linux.Windows ...

  9. 学习PDO啦

    通过查找资料对PDO有了一定的了解,PDO(PHP Data Object )为PHP数据对象,为PHP访问数据库提供了一个轻量级的借口,但PDO本生不能实现访问数据库的任何功能,只能通过数据库的PD ...

随机推荐

  1. BI之SSAS完整实战教程4 -- 部署至SSAS进行简单分析

    上一篇已经创建了多维数据集的结构. 接下来我们将多维数据集的架构定义发送到Analysis Services实例,部署到AS上去. 文章提纲 部署和浏览多维数据集 SSMS使用简介 总结 一.部署和浏 ...

  2. oracle 查询 当前最大时间的value的值

    数据列表: table : text id  datetime        name    value 1   2015-03-1     张三       3400 2   2015-03-1   ...

  3. HDU 1028(母函数)

    Online Judge Online Exercise Online Teaching Online Contests Exercise Author F.A.QHand In HandOnline ...

  4. Hibernate的缓存技术详解

    转载注明出处:http://www.cnblogs.com/xiaoming0601/p/5882980.html 一.什么是缓存: 并不是指计算机的内存或者CPU的一二级缓存:缓存是指为了降低应用程 ...

  5. Ahjesus Nodejs02 使用集成开发环境

    下载最新版webstorm, 选择此集成开发环境是因为支持性较好,在vs下也有插件支持,不过感觉有些牵强 附vs插件 NTVS 详细介绍 安装好以后就需要配置npm NPM 国内高速镜像 source ...

  6. OC静态库里NSClassFromString得到nil的解决

    如果你在静态库中有从类名反射回类的代码, 如下: NSString *myClassStr = @"myClass"; Class myClazz = NSClassFromStr ...

  7. jQuery eislideshow 图片轮播

    在线实例 基础演示 自动播放 使用方法 <div id="ei-slider" class="ei-slider"> <ul class=&q ...

  8. innerHtml and Jquery.html()

    1. innerHtml是Dom HTML的属性 是只读的,不能写入. 2. JQuery只能调用.html(),它可以加参数,改变原HTML内容. http://api.jquery.com/htm ...

  9. C# 如何使用 svcutil.exe 创建 WCF 客户端代码

    工具:svcutil.exe 参数:指定wsdl.输出源码文件.输出配置文件 示例: D:\>svcutil.exe http://localhost:8087/DataService/?wsd ...

  10. Convert part to feature command

    Search 库主页 Related Links ArcObjects SDK for ArcGIS 10Microsoft Help System Documentation Convert par ...