【发布时间】:2014-01-20 10:55:01
【问题描述】:
我有这个准备好的声明:
$stmt = $dbh->prepare("select * from t where name like :name ");
这样的绑定有效:
$p = "%glas%";
$stmt->bindParam(':name', $p );
如果我直接输入这个词,它会失败:
$stmt->bindParam(':name', "%glas%" );
有什么区别?
【问题讨论】:
-
"%glas%"不是变量 - 它不能绑定到它。 -
为此,有
bindValue() -
您也可以简单地将一组值传递给execute(),这对左值变量和常量值都有效。我总是很困惑为什么人们似乎认为他们需要使用 PDO 绑定参数 () 或绑定值 ()。
标签: php pdo prepared-statement