AOP bindParam vs exécuter

Je vois souvent des code à l'aide de bindParam ou bindValue avec PDO. Est tout simplement le passage d'arguments à execute mal vu pour une raison quelconque?

Je comprends que bindParam effectivement se lie à l'variables et que vous pouvez définir le type de paramètre d'être lié avec les deux bind méthodes, mais que faire si vous n'insérez des cordes?

$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');

J'ai souvent voir ci-dessus, mais personnellement je préfère:

$pdo->execute(array(':col2' => 'col2', ':col3' => 'col3', ':col4' => 'col4'));

Il n'est pas aussi détaillé et visuellement il fait plus de sens pour moi d'avoir les entrées "va dans" à la requête. Cependant, je n'ai pratiquement jamais le voir utilisé.

Est-il une raison pour préférer la bind méthodes plus le passage de paramètres à execute lorsque vous n'avez pas à profiter de comportements de l'ancien?

  • Je pense que c'est une question de préférence - j'ai tendance à préférer l'aide de bindValue et bindParam parce que je pense que le code résultant est plus facile à lire.
  • C'est en effet en baisse de préférence. Si vous n'avez pas besoin de la capacité fo types de forces (lorsque vous êtes seulement en utilisant des chaînes de caractères), le passage d'un tableau à execute() est rapide et pratique.