码迷,mamicode.com
首页 > Web开发 > 详细

php之bindValue和bindParam的区别

时间:2020-01-13 12:35:05      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:name   select   function   语句   赋值   div   str   sql 语句   man   

PDOStatement::bindValue — 

把一个值绑定到一个参数

绑定一个值到用作预处理的 SQL 语句中的对应命名占位符或问号占位符。

PDOStatement::bindParam —

 绑定一个参数到指定的变量名

绑定一个PHP变量到用作预处理的SQL语句中的对应命名占位符或问号占位符。 不同于 PDOStatement::bindValue() ,此变量作为引用被绑定,并只在 PDOStatement::execute() 被调用的时候才取其值。

区别用代码表示如下:

$sex = male;
$s = $dbh->prepare(SELECT name FROM students WHERE sex = :sex);
$s->bindParam(:sex, $sex); // use bindParam to bind the variable
$sex = female;
$s->execute(); // executed with WHERE sex = ‘female‘
$sex = male;
$s = $dbh->prepare(SELECT name FROM students WHERE sex = :sex);
$s->bindValue(:sex, $sex); // use bindValue to bind the variable‘s value
$sex = female;
$s->execute(); // executed with WHERE sex = ‘male‘

当$SEX,被再次赋值时,用bindvalue绑定的,其值还是最开始的值male,但用bindparam绑定的,因为只有在execute()被调用时才会取变量的值,而这时候变量的$sex的值已经由原来的male变成female了。

php之bindValue和bindParam的区别

标签:name   select   function   语句   赋值   div   str   sql 语句   man   

原文地址:https://www.cnblogs.com/missbye/p/12186675.html

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