$res=$mysqli->multi_query("
select count(id) as kolvo from tb_work where vip='1';
select count(id) as kolvo2 from tb_ask where vip='1'
");
Каким образом мне получить результаты?
Спустя 6 минут, 17 секунд (18.09.2012 - 22:53) killer8080 написал(а):
Пример из мануала
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";
/* execute multi query */
if ($mysqli->multi_query($query)) {
do {
/* store first result set */
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
$result->free();
}
/* print divider */
if ($mysqli->more_results()) {
printf("-----------------\n");
}
} while ($mysqli->next_result());
}
/* close connection */
$mysqli->close();
Спустя 7 минут, 39 секунд (18.09.2012 - 23:00) VELIK505 написал(а):
наверное я посмотрел туда как ты думаешь?
Спустя 2 минуты, 26 секунд (18.09.2012 - 23:03) killer8080 написал(а):
Цитата (VELIK505 @ 18.09.2012 - 23:00) |
наверное я посмотрел туда как ты думаешь? |
Если задаешь такой вопрос, то видимо нет
Иначе как минимум, привел бы код, как пытался делать, и спрашивал бы конкретно, что не так.
Спустя 9 минут, 30 секунд (18.09.2012 - 23:12) VELIK505 написал(а):
Я тебе привёл. Ты разницу понимаешь? В мануале показано стандартное использование мультизапросов то что пачкой остсылаем на сервер несколько запросов и можем получать результат запросов не дожидаясь результата следующего запроса. Мне же надо дождаться все ответы но одновременно отправлять запросы пачкой на сервер.
отсылаю потом через assoc разбираю результаты не фурычит.
Вот и спрашиваю как в моём случае получить результаты запросов?
$res=$mysqli->multi_query("
select count(id) as kolvo from tb_work where vip='1';
select count(id) as kolvo2 from tb_ask where vip='1'
");
отсылаю потом через assoc разбираю результаты не фурычит.
Вот и спрашиваю как в моём случае получить результаты запросов?
Спустя 2 минуты, 33 секунды (18.09.2012 - 23:15) inpost написал(а):
Выше же код, тебе перед этим надо $result = $mysqli->store_result().
Спустя 8 минут, 40 секунд (18.09.2012 - 23:24) killer8080 написал(а):
VELIK505
multi_query не возвращает mysqli_result object, соответсвенно и никакого метода fetch_assoc там нет. Чтобы получить результат нужно использовать mysqli::store_result или mysqli::use_result, по другому никак.
multi_query не возвращает mysqli_result object, соответсвенно и никакого метода fetch_assoc там нет. Чтобы получить результат нужно использовать mysqli::store_result или mysqli::use_result, по другому никак.
Цитата (VELIK505 @ 18.09.2012 - 23:12) |
Мне же надо дождаться все ответы но одновременно отправлять запросы пачкой на сервер. |
Нифига не понял. Ну сохраняй результаты в массив, а потом его разбирай где нужно.
Спустя 21 день, 15 часов, 38 минут, 23 секунды (10.10.2012 - 15:02) Inavin написал(а):
Цитата |
Ну сохраняй результаты в массив, а потом его разбирай где нужно. |
Если объем результата очень большой (несколько десятков миллионов записей) и не массив не поместится в памяти, то как лучше сделать?
Спустя 8 минут, 14 секунд (10.10.2012 - 15:10) killer8080 написал(а):
Цитата (Inavin @ 10.10.2012 - 15:02) |
Если объем результата очень большой (несколько десятков миллионов записей) и не массив не поместится в памяти, то как лучше сделать? |
Гигантские объемы данных в поток никто не выводит, значит обрабатывать в цикле, и сразу куда то сохранять результат, ради чего то он же делается.