[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Несколько вызовов mysqli_multi_query подряд
sprofxx
В цикле создается экземпляр класса, который используется для обработки данных. В этом классе формирую запросы на INSERT, UPDATE, DELETE в разные таблицы базы, скидываю в одну строку, затем выполняю mysqli_multi_query, результат запроса не обрабатываю, он мне не нужен.

В новой итерации цикла создаю новый экземпляр такого же класса, в котором новое подключение к базе и опять все повторяется для новых данных, в конце mysqli_multi_query.

Так вот, нормально выполняется только первый вызов mysqli_multi_query, все последующие в новых экземплярах класса не выполняются, данные в базе появляются только те, которые относятся к первому вызову. Если добавляю пустой цикл прохода по результатам, то все нормально:

$res   = mysqli_multi_query($this->conn, $query);
while (mysqli_next_result($this->conn)) {;}


Но тогда скорость обработки всех запросов гораздо сильно увеличивается раз в 6, а для меня скорость критична. Пробовал закрывать соединение, уничтожать $res, ничего не помогает.

Вопрос. Как выполнить несколько mysqli_multi_query, минуя обработку результата.
sergeiss
Цитата (sprofxx @ 30.05.2014 - 14:36)
В новой итерации цикла создаю новый экземпляр такого же класса, в котором новое подключение к базе...

Если тебе критична скорость, то так не делай. Каждое новое подключение требует некоторого времени. Лучше сделать одно подключение и пользоваться им всё время, пока живет скрипт.
И я не понял, в настоящее время ты что делаешь с первым подключением? Выключаешь его? Или просто делаешь второе подключение, так и оставив первое открытым?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
sprofxx
Оставляю открытым, подключение создается в классе, а экземпляров класса создается несколько пока главный скрипт выполняется и в каждом классе новое подключение. Но я пробовал закрывать соединение, ощущение как будто пхп все равно одно подключение использует.

Но главный вопрос в том, как работать с подключением не обрабатывая результаты запросов, чтобы не тратить на это время, возможно ли такое, или какой вообще способ есть чтобы плюнуть запросы и ехать дальше, не тратя время ни на какие обработки.
vital
Цитата
способ есть чтобы плюнуть запросы и ехать дальше

mysqli_execute()

А и да - ваш алгоритм полный отстой.

_____________
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.