Я часто вижу код с помощью bindParam
или bindValue
с PDO. Просто ли аргументы 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
, когда вам не нужно использовать специальные поведения для первого?