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

      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. 轻量级的移动 webapp 框架Jingle

    一大早爬起来,发现这样的一个东东,国产,感觉实用性很强,试着用用. 1.28补记: 试着用jingle做了一个网站的移动版,感觉如果在布局上要求不高的话 - 目前支持的布局只有list,还是挺不错,做 ...

  2. Hibernate之lazy延迟加载(转)

    一.延迟加载的概念 当Hibernate从数据库中加载某个对象时,不加载关联的对象,而只是生成了代理对象,获取使用session中的load的方法(在没有改变lazy属性为false的情况下)获取到的 ...

  3. 伏羲八卦、文王六十四卦、老子阴阳太极、西方哲学辩证与"解耦和复用”思想的异曲同工之妙

    伏羲八卦.文王六十四卦.老子阴阳太极.西方哲学辩证与"解耦和复用”思想的异曲同工之妙     问题:任何程序语言在遇到复杂逻辑时,代码维护难度就会加大,如何处理该问题? 答案:重构,模块化. ...

  4. C# 分支语句

    选择语句 if,else if是如果的意思,else是另外的意思,if后面跟()括号内为判断条件,如果符合条件则进入if语句执行命令.如果不符合则不进入if语句.else后不用加条件,但是必须与if配 ...

  5. wap网站safari浏览器和微信cooke不能登录问题

    wap网站safari浏览器cooke不能登录问题: http://wenku.baidu.com/link?url=VnPxl43PySYVygt09vkQ7xwxOD0JCXNtw3Fx7100j ...

  6. CSS3 实现简单轮播图

    用css3动画实现图片切换效果,原理还是改变left值.只有最简单的自动播放功能,切换后短时间静止,通过最后的位置克隆第一张图片,实现无缝切换. html结构 <div id="con ...

  7. RHEL7文件查找

    本文介绍RHEL7下which.whereis.locate.find命令的使用,重点介绍find命令的使用 which 命令:which 作用:查找命令的执行文件路径 语法:which [选项] [ ...

  8. Installing FIM 2010 R2 SP1 Portal on SharePoint Foundation 2013

    http://www.fimspecialist.com/fim-portal/installing-fim-2010-r2-sp1-portal-on-sharepoint-foundation-2 ...

  9. GridView总结一:GridView自带分页及与DropDownList结合使用

    GridView自带的分页功能实现: 要实现GrdView分页的功能 操作如下: 1.更改GrdView控件的AllowPaging属性为true. 2.更改GrdView控件的PageSize属性为 ...

  10. JAVA- File类

    File类是IO包中唯一代表磁盘文件本身的对象.File类定义了一些与一台无关的方法来操作文件,可以通过调用File类中的方法,实现创建.修改.删除文件等功能.File类的对象主要用来获取文件本身的一 ...