Как сохранить результаты нескольких запросов в разных переменных массива

Мне нужно получить данные из 2 разных запросов. Я хочу хранить их как 2 отдельные переменные.

Сначала я попробовал это:

// 1. Create a database connection
$mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASS, DB_NAME, DB_PORT);

if ($mysqli->connect_errno) {
echo "No connection" ;
}
// 2. first query
$query = "CALL sp1('2015-01-01', '2015-01-31');";
$result = $mysqli->query($query);

$var1 = array();
while($shop = $result->fetch_object()) {
$var1[] = $shop;
}

echo '<pre>', print_r($var1), '</pre>';
$result->free();

// 3. second query
$query = "CALL sp2('2015-01-01', '2015-01-31');";
$result = $mysqli->query($query);

$var2 = array();
while($shop = $result->fetch_object()) {
$var2[] = $shop;
}

echo '<pre>', print_r($var2), '</pre>';

Я получаю данные из 1-го запроса, однако, когда php пытается получить 2-й запрос, я получил эту ошибку:

Неустранимая ошибка: вызов функции-члена fetch_object () для логического значения

Я читал о multi_query, но не смог найти ничего о сохранении вывода запросов как отдельных переменных.

Дополнительная информация: Даже когда я переключаю запросы, второй всегда неверен. Я не знаю, как загрузить второй запрос и что происходит с предыдущим (удаляется, когда я пишу: result-> free?)

0

Решение

Решение было этой маленькой строкой:

$results->free();
// solution
$mysqli->next_result();

Похоже, что mysqli нуждается в информации, что один запрос завершен.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]