Как узнать, кэшируется ли подготовленное заявление? - PullRequest
7 голосов
/ 28 ноября 2011

Я повторно использовал одну и ту же переменную $stmt в своем скрипте PHP для написания подготовленных операторов:

$stmt = $dbh->prepare("SELECT column_A FROM Table1 WHERE id=?");
$stmt->bindValue(1, $id, PDO::PARAM_INT);
$stmt->execute();
....

$stmt = $dbh->prepare("UPDATE Table2 SET column_B=? WHERE column_A=?");
$stmt->bindValue(1, $name);
$stmt->bindValue(2, $column_A);
$stmt->execute();

Мой вопрос заключается в том, как мне узнать, записываются ли два оператора в кэш и чтовторой оператор не переписал первый, хотя оба оператора имеют одно и то же имя переменной?

Ответы [ 2 ]

2 голосов
/ 28 ноября 2011

Заявления подготавливаются ядром базы данных, а не PHP, см .:

Таким образом, повторное использование одного и того же имени переменной в PHP не приведет к аннулированию «кэша» подготовки MySQL.

0 голосов
/ 28 ноября 2011

Ты не. Но переопределение переменной не сильно изменится - вы присваиваете новое значение переменной, ничего не редактируете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...