如何在不同的数组变量中存储多个查询的结果

时间:2016-02-10 22:59:03

标签: php mysql sql mysqli-multi-query

我需要从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>';

我从第一个查询中获取数据,但是当php尝试获取第二个查询时,我收到了此错误:

  

致命错误:在布尔值

上调用成员函数fetch_object()

我读过有关multi_query的内容,但找不到任何关于将查询输出保存为单独变量的信息。

附加信息:即使我切换查询总是第二个不正确。我不知道如何加载第二个查询以及前一个查询发生了什么(在我写的时候被删除:结果 - &gt;免费?)

1 个答案:

答案 0 :(得分:0)

解决方案就是这条小路:

critical

似乎mysqli需要一个查询完成的信息。