Je vois souvent du code utilisant bindParam
ou bindValue
avec PDO. Est-ce que simplement passer des arguments à execute
est mal vu pour une raison quelconque?
Je comprends que bindParam
lie effectivement les variables et que vous pouvez définir le type de paramètre lié avec les deux méthodes bind
, mais que se passe-t-il si vous n'insérez que des chaînes de caractères?
$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');
Je vois souvent ce qui précède, mais personnellement je préfère:
$pdo->execute(array(':col2' => 'col2', ':col3' => 'col3', ':col4' => 'col4'));
Cela n'est pas aussi verbeux et visuellement, il me semble plus logique d'avoir les entrées "entrant" dans la requête ensemble. Cependant, je le vois rarement utilisé.
Y a-t-il une raison de préférer les méthodes bind
au passage de paramètres à execute
lorsque vous n'avez pas besoin de profiter des comportements spéciaux des premiers?
1 votes
Je pense que c'est une question de préférence - j'ai tendance à préférer utiliser
bindValue
etbindParam
car je trouve que le code obtenu est plus facile à lire.2 votes
C'est en effet une question de préférence. Si vous n'avez pas besoin de la possibilité de forcer des types (quand vous n'utilisez que des chaînes de caractères), passer un tableau à execute() est rapide et pratique.