PDO预处理之参数绑定

原创 2018-11-14 15:52:05 375
摘要:$type = 'mysql'; $host = '127.0.0.1'; $dbname = 'news'; $charset = 'utf8'; $user = 'root'; $pass = &
$type = 'mysql';
$host = '127.0.0.1';
$dbname = 'news';
$charset = 'utf8';
$user = 'root';
$pass = 'root';

$dns = $type.":host=".$host.";dbname=".$dbname.";charset=".$charset;
$pdo = new PDO($dns,$user,$pass);

$sql = "SELECT `id`,`name`,`sex` FROM `user` WHERE `id` >= :id";
$stmt = $pdo -> prepare($sql); 

$stmt->bindValue(':id', 1, PDO::PARAM_INT);		#可以是字面值或变量

$stmt->execute();

#把查询结果绑定对应变量上
$stmt -> bindColumn(1, $id, PDO::PARAM_INT);
$stmt -> bindColumn(2, $name, PDO::PARAM_STR ,50);
$stmt -> bindColumn(3, $sex, PDO::PARAM_INT);

$rows = [];
while($rows = $stmt ->fetch(PDO::FETCH_BOUND)){
	echo $id,$name,$sex;
	echo B;
}

结果:

1杨过0
3老顽童0
4洪七公0
5杨康0
6欧阳克0
7灭绝师太1
8陈近南0
10张无忌0
12小龙女1
14赵敏1
15宋青书0
18东方不败1


总结:

参数绑定可以分为三种

  1. 通过bindParam()的方式

  2. 通过bindValue()的方式

  3. 通过execute()方法执行预处理语句时直接传递参数的方式

第一,二种方式的区别在于bindParam()只能传递变量,而bindValue()可以传递字面值或变量。

第一,二种方式在绑定后也需要通过execute()执行预处理;

第一,二种优势是可以指定数据类型,第三种书写方便;


列绑定

把execute()得到的结果集以每列绑定一个变量的方式进行处理;

绑定后一个变量对应结果集中的一列,通过while循环的方式得到需要的数据;

通过列绑定方式获得结果集fetch()中需要传递的值为PDO:FETCH_BOUND ;

批改老师:韦小宝批改时间:2018-11-14 16:06:47
老师总结:嗯!写的很不错!很棒!总结以及代码都很完整!!!继续加油吧!

发布手记

热门词条