Задать вопрос
@Dolbaldor-Bender

Если в PDO использовать много подготовленных запросов они будут есть ресурсы?

Например. Я хочу поместить все подготовленные запросы которые будут использоваться в проекте списком в отдельный фаил. И подключать его в каждом месте проекта где должны выполнятся запросы. Подготовленных запросов может быть примерно 60-100.

Хочу у вас узнать: если мне нужно выполнить только один запрос из 100, остальные запросы которые я не выполняю и не посылаю в них данные не будут компилироваться? Не будут ли они тратить ресурсы сервера?

И второе. Есть предположение что компилируется запрос тогда когда запускаем выполнение execute() по тому ресурсы тратится не должны. Прошу развеять мои сомнения или не правильные предположения.

пример
$STH1 = $DBH->prepare("INSERT INTO table1 (name, addr, city) values (?, ?, ?)");
$STH2 = $DBH->prepare("INSERT INTO table2 (name, addr, city) values (?, ?, ?)");
...
$STH1->execute(); // В любом месте где это нужно
  • Вопрос задан
  • 235 просмотров
Подписаться 2 Оценить 3 комментария
Решения вопроса 2
27cm
@27cm
TODO: Написать статус
Подключать файл с 60-100 переменными и вызовами prepare() "в каждом месте проекта где должны выполнятся запросы" и надеяться, что это не будет есть ресурсы... А что дальше? Идеальный мир с единорогами и радугой?

Не будут ли они тратить ресурсы сервера?

Будут, причём неоправданно много.

Все же хотелось подробнее. В какой момент тратятся ресурсы и на что?

Ты собираешься подключать файл, в котором будет 60-100 вызовов PDO::prepare() - на это будет расходоваться время, не зависимо от того будет вызов execute() или нет; также будет создано 60-100 переменных с объектами PDOStatement - на это будет расходоваться память. Не понятно, с чего вообще могло возникнуть такое предположение, что ресурсы тратиться не будут.

Нельзя просто так взять сделать сотню вызовов методов, создать сотню переменных и не потратить время и память.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Ровно также, как Вы узнали что необходимо выполнить $STH1, возьмите данные для запроса из таблицы по ID ключевого поля.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы