我经常看到使用PDO的bindParam
或bindValue
的代码。是否由于某种原因而不建议简单地将参数传递给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
?
bindValue
和bindParam
,因为我认为生成的代码更容易阅读。 - andrewsi