PDO 中 bindParam 和 bindValue 的区别

文档解释:

绑定一个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'


or


$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'



参考:

https://stackoverflow.com/questions/1179874/what-is-the-difference-between-bindparam-and-bindvalue#answer-5077108

https://www.php.net/manual/zh/pdostatement.bindparam.php

https://www.php.net/manual/zh/pdostatement.bindvalue.php

修改时间 2016-03-14

真诚赞赏,手留余香
赞赏
随机推荐
javascript延迟操作setInterval
Windows批处理使用7-zip压缩多个文件夹
PM2 生态系统文件 ecosystem.config.js
Vue Router
Webpack file-loader 升级后 src= "[object Module]" 的解决方法
Cheerio 中文文档
敏捷开发笔记
PHP 为什么会引入 Trait
什么是DDD领域驱动设计?
用 host 文件屏蔽常见的 Adobe 相关域名