【问题标题】:PDO bindparam and bindvalue. Which is the diference?PDO 绑定参数和绑定值。有什么区别?
【发布时间】:2012-12-02 00:43:01
【问题描述】:
我已阅读有关 PHP PDO 的手册并看到此帖子:PDO PARAM_STR and length
读完那篇文章后,我了解到我们在插入数据库时不需要指定长度,而是指定用于输出。
我的问题是,如果我不想为输出指定任何长度,我可以使用 bindvalue() 代替吗?也许有人可以就何时最好使用用户 bindparam 和 bindvalue 给出一个很好的建议?
提前谢谢各位。
【问题讨论】:
标签:
php
pdo
bindvalue
bindparam
【解决方案1】:
您不必设置输出的长度,您可以根据需要设置。
这就是手册所说的 bindValue() 和 bindParam() 之间的区别
将 PHP 变量绑定到用于准备语句的 SQL >语句中的相应命名或问号占位符。与 PDOStatement::bindValue() 不同,> 变量被绑定为引用,并且只会在调用 >PDOStatement::execute() 时进行评估。
大多数参数是输入参数,即以只读方式用于构建查询的参数。一些驱动程序支持调用存储过程 > 将数据作为输出参数返回,而有些驱动程序还支持作为输入/输出参数 > 发送数据并更新以接收数据。
当我想添加一个变量时,我总是使用 bindParam。但我想你必须为此做出自己的决定。