码迷,mamicode.com
首页 > 其他好文 > 详细

PDO预处理

时间:2018-12-21 13:06:29      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:查询   mysql   local   exe   localhost   sele   charset   编号   关联   

1.参数以?替代

<?php
  header(‘content-type:text/html;charset=utf-8‘);
  $dsn=‘mysql:host=localhost;dbname=test‘;
  $pdo=new PDO($dsn,‘root‘,‘‘);
  $pdo->exec(‘set names utf8‘);

  $sql=‘SELECT * FROM users id>?‘; //参数以 ? 替代
  $stmt=$pdo->prepare($sql); //创建预编译对象
  $id=2;
  $stmt->bindParam(1,$id); //参数编号,具体值
  //$stmt->bindValue(1,2); //不需要提前赋值 直接传参数
  $stmt->execute(); //执行代码
  $data=$stmt->fetchAll(PDO::FETCH_ASSOC); //获取结果集 类型为关联数组
  var_dump($data);
  $pdo=null;
 ?>

 

2.参数以:name替代。推荐,更加便利。

<?php
  header(‘content-type:text/html;charset=utf-8‘);
  $dsn=‘mysql:host=localhost;dbname=test‘;
  $pdo=new PDO($dsn,‘root‘,‘‘);
  $pdo->exec(‘set names utf8‘);

  $sql=‘SELECT * FROM users id>:id‘; //参数以 :name 替代
  $stmt=$pdo->prepare($sql); //创建预编译对象
  $id=2;
  $stmt->bindParam(":id",$id); //参数编号,具体值
  $stmt->execute(); //执行代码
  $data=$stmt->fetchAll(PDO::FETCH_ASSOC); //获取结果集 类型为关联数组
  var_dump($data);
  $pdo=null;
?>

 

对于MySqli预处理,PDO执行查询语句时,不需要绑定结果集,直接使用fetch()或者fetchAll()

PDO::FETCH_ASSOC          从结果集中获取以列名为索引的关联数组。
PDO::FETCH_NUM             从结果集中获取一个以列在行中的数值偏移量为索引的值数组。
PDO::FETCH_BOTH            这是默认值,包含上面两种数组。

PDO的预处理方式可以防范常见的SQL注入

PDO预处理

标签:查询   mysql   local   exe   localhost   sele   charset   编号   关联   

原文地址:https://www.cnblogs.com/t-young1201/p/10153577.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!