I often see code using bindParam
or bindValue
with PDO. Is simply passing arguments to execute
frowned upon for any reason?
I understand that bindParam
actually binds to the variables and that you can set the type of parameter being bound with both bind
methods, but what if you are only inserting strings?
$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');
I often see the above, but personally I prefer:
$pdo->execute(array(':col2' => 'col2', ':col3' => 'col3', ':col4' => 'col4'));
It is not as verbose and visually it makes more sense to me to have the inputs "going in" to the query together. However, I hardly ever see it used.
Is there a reason to prefer the bind
methods over passing parameters to execute
when you don't have to take advantage of the special behaviors of the former?