我经常看到使用PDObindParam
或bindValue
与 PDO 一起使用的代码。是否只是execute
出于任何原因传递论点而皱眉?
我知道bindParam
实际上绑定到变量,并且您可以设置与这两种bind
方法绑定的参数类型,但是如果您只插入字符串怎么办?
$query = "SELECT col1 FROM t1 WHERE col2 = :col2 AND col3 = :col3 AND col4 = :col4";
$pdo->bindValue(':col2', 'col2');
$pdo->bindValue(':col3', 'col3');
$pdo->bindValue(':col4', 'col4');
我经常看到上面的,但我个人更喜欢:
$pdo->execute(array(':col2' => 'col2', ':col3' => 'col3', ':col4' => 'col4'));
它没有那么冗长和直观,让输入一起“进入”查询对我来说更有意义。但是,我几乎没有看到它被使用过。
当您不必利用前者的特殊行为时,是否有理由更喜欢bind
方法而不是传递参数?execute