我有一個具有多個結果集的存儲過程。我如何前進到mysqli中的第二個結果集以獲得這些結果?使用存儲過程在php/mysqli中檢索多個結果集
比方說,這就像一個存儲過程:
create procedure multiples(param1 INT, param2 INT)
BEGIN
SELECT * FROM table1 WHERE id = param1;
SELECT * FROM table2 WHERE id = param2;
END $$
的PHP是這樣的:
$stmt = mysqli_prepare($db, 'CALL multiples(?, ?)');
mysqli_stmt_bind_param($stmt, 'ii', $param1, $param2);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $id);
然後,這是我不能得到工作的一部分。我嘗試使用mysqli_next_result移動到下一個結果集,但無法使其工作。我們確實讓它與mysqli_store_result和mysqli_fetch_assoc/array/row一起工作,但由於某些原因,所有的ints都會返回爲空字符串。
任何人遇到此問題並有解決方案嗎?
過程調用是否使用mysqli_multi_query()而不是預準備語句正確返回? – gapple 2009-11-05 21:44:43
哦,對不起。我的第一個迴應是沒有正確閱讀你的評論。我們需要使用準備好的語句,但查詢是正確的並且適用於第一個結果集。我無法弄清楚如何將它提升到第二個結果集。 – MacAnthony 2009-11-05 21:50:09