Даже после большого чтения я не получил ни одной вещи. Предотвращает ли PDO данные, ЕСЛИ Я НЕ использую bindValue или bindParam? Возможно, я не понял, что именно делает «подготовка». Я знаю, что он хранит процедуру как объект. Я знаю, что выигрыш в производительности (даже использовал его с транзакциями), но побег это единственное, что я не понялPHP + PDO - информация о подготовленном операторе
Пусть это:
$db = new PDO('mysql:host=' . $config['db']['host'] . ';dbname=' . $config['db']['dbname'], $config['db']['username'], $config['db']['password'], $config['db']['options']);
$query = $db->prepare("INSERT INTO table (col1, col2) VALUES (:col1, :col2)");
$result = $query->execute(array('col1' => $val_col1, 'col2' => $val_col2));
Где/когда фактическая утечка делается? Пока Подготовка или пока связывание a параметр/значение? Что делать, если я пропущу это:
$query->bindParam(":col1", $val_col1);
$query->bindParam(":col2", $val_col2);
Обратите внимание, что у меня есть PDO :: ATTR_EMULATE_PREPARES набор для ложной (он установлен в массиве $ конфигурации)
Использование PHP 5.4.13 и MySQL 5.1.67
Когда я думал о преимуществах производительности я думал о нескольких запросов (скажем, вставки) с различными значениями. Вы имеете в виду подстаканники как "?" или ": colname" тоже работает? Я думал, что отключающие силы эмуляции убегают каждый раз –
, пожалуйста, прочитайте по ссылке, которую я разместил выше –
Спасибо :) Кажется, я думал назад :) –