2015-04-03 93 views
0

我必須使用相同的mysqli連接執行2個不同的查詢。 我試圖用multi_query($查詢),如下面的代碼:Mysqli無法在同一連接上執行2個查詢

<?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"; 
?> 

第一查詢後,它觸發此錯誤:

調用一個成員函數fetch_row()一個非對象在E:\ EasyPHP-5.3.9 \ www \ MOD_tree.php on line25

請幫忙!!!

回答

0

mysqli::next_result()返回一個布爾值。使用mysqli::store_result()檢索下一個結果。

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

+0

代碼在改變: $結果= $ mysqli-> store_result(); 而($ RSTO = $ result-> fetch_row()) \t \t { \t ...... \t \t \t} \t $ result->免費(); 但沒有改進。 我需要添加'more_result'語句嗎? – 2015-04-03 17:30:17

+0

這是否回答你的問題?如果是這樣,您可以點擊左側的鏈接來​​接受此答案。 – 2015-04-03 17:32:22