Mysqli无法在同一连接上执行2次查询

时间:2015-04-03 16:42:48

标签: php mysqli

我必须使用相同的mysqli连接执行2个不同的查询。 我尝试使用multi_query($ query),如下面的代码所示:

<?php 
$re = $mysqli->query("SET CHARACTER SET 'utf8'");
$query = "CALL LDmodel_tree();CALL LDmodel_file()";
$mysqli->multi_query($query);

echo 'var fold = [];'."\n";
echo 'var file = [];'."\n";


$result = $mysqli->store_result();
while ($rsto = $result->fetch_row()) 
        {
        $y=0;$cart = array ();
        do {$cart[$x][$y] = $rsto[$y]; $y++; } while ($y<4);
        echo 'fold['.$x.'] = ['.$cart[$x][3].',"'.$cart[$x][1].'",'.$cart[$x][0].','.$cart[$x][2].'];'."\n";        /* ID, nome, livello, madre */
        $x++;
        }          

$result->free();
echo 'var n_cart='.$x.';'."\n";


$result = $mysqli->next_result();
while ($rsto = $result->fetch_row())
        {
        $y=0;$cart = array ();
        do {$cart[$x][$y] = $rsto[$y]; $y++; } while ($y<6);
        echo 'file['.$x.'] = ['.$cart[$x][0].',"'.$cart[$x][1].'","'.$cart[$x][2].'",'.$cart[$x][3].','.$cart[$x][4].','.$cart[$x][5].'];'."\n";
        $x++;
        }          
$result->free();
echo 'var n_file='.$nx.';'."\n";
?>

在第一次查询后,它会触发此错误:

在第25行的 E:\ EasyPHP-5.3.9 \ www \ MOD_tree.php 中的非对象上调用成员函数fetch_row()

请帮助!!!

1 个答案:

答案 0 :(得分:0)

mysqli::next_result()返回一个布尔值。使用mysqli::store_result()检索下一个结果。

https://php.net/manual/en/mysqli.next-result.php