bindParam
PDO を使用したりPDOを使用したコードをよく見かけます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