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

      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. DistributedCache小记

    一.DistributedCache简介 DistributedCache是hadoop框架提供的一种机制,可以将job指定的文件,在job执行前,先行分发到task执行的机器上,并有相关机制对cac ...

  2. markdown这么好用的东西我才知道。。。多么不折腾的我。。。

    markdown 锚点 努力吧 我的网站 之前有个域名phifan.com没续费被抢了,之后又买了phifan.cn没续费被抢了,还剩下个plusnet.cn说什么也不能再丢掉了! package c ...

  3. ASP.NET WebAPI 14 仿写Filter管道

    WebAPI中有设计了几种管道(Channel),大概如下:HttpMessageHandler,ActionFilter管道,ExceptionFilter管道.在三种管道中HttpMessageH ...

  4. winform(无边框窗体与timer)

    一.无边框窗体 1.控制按钮如何制作就是放置可以点击的控件,不局限于使用按钮或是什么别的,只要放置的控件可以点击能触发点击事件就可以了 做的好看一点,就是鼠标移入(pictureBox1_MouseE ...

  5. javascript --- 再谈词法分析

    javascript代码是如何执行的呢,分为六个步骤(就像把大象装进冰箱总共分几步?): 第一步:载入第一个js代码段(注:script标签对内的代码或是引用js代码,这也说明js并不是一行一行(单纯 ...

  6. 同源策略和JSONP(概念性)

    同源策略 浏览器有一个很重要的概念——同源策略(Same-Origin Policy). 所谓同源是指,域名,协议,端口相同.不同源的客户端脚本(javascript.ActionScript)在没明 ...

  7. Android Activity/Service/Broadcaster三大组件之间互相调用

    我们研究两个问题,1.Service如何通过Broadcaster更改activity的一个TextView.(研究这个问题,考虑到Service从服务器端获得消息之后,将msg返回给activity ...

  8. English Training Material - 05

    Could I leave a message? Language Checklist Telephoning (1) Introducing yourself Good morning, Arist ...

  9. 使用tinypng优化Android的资源图片

    tinypng 是一个支持压缩png和jpg图片格式的网站,通过其独特的算法(通过一种叫“量化”的技术,把原本png文件的24位真彩色压缩为8位的索引演示,是一 种矢量压缩方法,把颜色值用数值123等 ...

  10. IOS中程序如何进行推送消息(本地推送,远程推送)2(上)

    未看过本地推送的,可以提前看一下本地推送. http://www.cnblogs.com/wolfhous/p/5135711.html =============================== ...