可以使用多种方式实现预处理:指的是在绑定数据进行执行的时候,可以有多种方式。

预处理语句中为变量

使用数组指定预处理变量

  1、准备预处理语句(发送给服务器,让服务器准备预处理语句)

  PDOStatement PDO::prepare:类似exec将一条SQL语句发送给Mysql服务器  

    //PDO::prepare 能够自动的准备一个预处理语句,用户需要准备的只是预处理所要执行的语句
    //需求:往学生表里循环插入10条记录
    //PDO的预处理能够自动的将对应的以:开始的变量给记录下来,实际发送给服务器的是“?”
    $sql1 = "insert into pro_student values(null,:s_name,:s_num,:s_gender,:s_age,:c_id)";

  2、发送预处理语句

    $stmt = $pdo->prepare($sql1);

  3、给预处理绑定数据

    $arr = array(
      ':s_name' => '房祖名',
      ':s_num' => 'itcast0013',
      ':s_gender' => 0,
      ':s_age' => 28,
      ':c_id' => 2
    );

  4、执行预处理:将要操作的数据发送给预处理语句,再执行预处理语句

    PDOStatement::execute([$array]):数组用来传递对应的参数

    $stmt->execute($arr); //执行预处理

  

通过绑定变量

  bindParam

    bool PDOStatement::bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] )

    在执行预处理之前,将之前预处理语句所指定的变量进行赋值

    只能通过变量的形式进行赋值(引用传值)

  

  bindValue

    bool PDOStatement::bindValue ( mixed $parameter , mixed $value [, int $data_type = PDO::PARAM_STR ] )

    执行与bindParam一样

    在执行预处理之前,将之前预处理语句所指定的变量进行赋值,或者直接将值作为参数进行绑定  

      $stmt->bindValue(':s_name','张三');
      $stmt->bindValue(':s_num','itcast0015');
      $stmt->bindValue(':s_gender',0);
      $stmt->bindValue(':s_age',30);
      $stmt->bindValue(':c_id',3);

  bindParam与bindValue的区别

    1、bindParam必须要先声明变量,再使用变量;bindValue可以直接使用值

    2、bindValue是一次性的(因为是值传递,若变量值改变了,则需要重新绑定bindValue),而bindParam可以无限使用(因为使用的引用传值,一旦变量的值进行改变,那么对应的组织SQL语句时所用到的变量的值也跟着改变)

预处理语句中为?

使用数组指定预处理变量

  

通过绑定变量

  此时,bindParam和bindValue绑定的时候,第一个参数都为数字,数字对应第几个“?”

  

  

  

php -- PDO预处理的更多相关文章

  1. MySQL pdo预处理能防止sql注入的原因

    MySQL pdo预处理能防止sql注入的原因: 1.先看预处理的语法 $pdo->prepare('select * from biao1 where id=:id'); $pdo->e ...

  2. pdo 预处理

      <?php /* * pdo 预处理sql */ $dsn = "mysql:dbname=0328;host=localhost"; $username = " ...

  3. 2017-07-25 PDO预处理以及防止sql注入

    首先来看下不做任何处理的php登录,首先是HTML页面代码 <html> <head><title>用户登录</title></head> ...

  4. 前端学PHP之PDO预处理语句

    × 目录 [1]定义 [2]准备语句 [3]绑定参数[4]执行查询[5]获取数据[6]大数据对象 前面的话 本来要把预处理语句和前面的基础操作写成一篇的.但是,由于博客园的限制,可能是因为长度超出,保 ...

  5. PDO预处理

    方法:bool PDOStatement::execute ([ array $input_parameters ] ) 1.PDOStatement::execute不使用参数 01)单个绑定值(P ...

  6. php pdo预处理语句与存储过程

    很多更成熟的数据库都支持预处理语句的概念.什么是预处理语句?可以把它看作是想要运行的 SQL 的一种编译过的模板,它可以使用变量参数进行定制.预处理语句可以带来两大好处: 1.查询仅需解析(或预处理) ...

  7. PHP基础知识之————PDO预处理语句

    转载处:http://www.cnblogs.com/xiaohuochai/p/6133353.html 定义 在生成网页时,许多PHP脚本通常都会执行除参数之外,其他部分完全相同的查询语句,针对这 ...

  8. PDO预处理语句规避SQL注入攻击

    所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令.在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存 ...

  9. PDO预处理语句

    1.造PDO对象$dsn = "mysql:dbname=mydb;host=localhost";$pdo = new PDO($dsn,"root",&qu ...

  10. PHP PDO 预处理语句与存储过程

    很多更成熟的数据库都支持预处理语句的概念. 什么是预处理语句?可以把它看作是想要运行的 SQL 的一种编译过的模板,它可以使用变量参数进行定制.预处理语句可以带来两大好处: 查询仅需解析(或预处理)一 ...

随机推荐

  1. 定义JQuery插件

    http://cavalry800528.iteye.com/blog/1953917 一:导言 有些WEB开发者,会引用一个JQuery类库,然后在网页上写一写$("#"),$( ...

  2. codechef The Ball And Cups题解

    The Ball And Cups At the end of a busy day, The Chef and his assistants play a game together. The ga ...

  3. MySQL 连接方式

    MySQL 连接方式 1:TCP/IP 套接字方式 这种方式会在TCP/IP 连接上建立一个基于网络的连接请求,一般是client连接跑在Server上的MySQL实例,2台机器通过一个TCP/IP ...

  4. vue 父子组件传值的另外一种方式 provide inject

    1.文档说明 https://cn.vuejs.org/v2/api/#provide-inject 2.实例 element ui的dropdown组件 dropdown.vue: provide( ...

  5. Hbase总结(八)Hbase中的Coprocessor

    1.起因(Why HBase  Coprocessor) HBase作为列族数据库最常常被人诟病的特性包含:无法轻易建立"二级索引",难以运行求和.计数.排序等操作.比方,在旧版本 ...

  6. 关于SO_REUSEADDR的使用说明~

    参考WINDOWS   网络编程技术         1.   可以对一个端口进行多次绑定,一般这个是不支持使用的:     2.   对于监听套接字,比较特殊.如果你定义了SO_REUSEADDR, ...

  7. storyboard,xib

    1. 从xib的viewcontroll中启动storyboard 或者 从一个storyboard切换到另一个storyboard: – (IBAction)openStoryboard:(id)s ...

  8. unity, 内置shader下载地址

    在unity的download页面上能找到Built in shaders的下载连接.

  9. [svc]influxdb最佳实战-监控对比

    最近在搞容器的监控,遇到influxdb这个库,搞了两天,些许明白了些套路,做个记录,备忘.... 小结如下: influxdb go语言编写 默认情况influxdb创建的库关联autogen的RP ...

  10. hadoop修改

    https://github.com/medcl/elasticsearch-analysis-ik/releases hadoop-/etc/hadoop/core-site.xml <con ...