在閱讀了原始註釋和上面的範例,以及費力地查閱了文件之後,我終於讓一個迴圈可以與兩個儲存程序一起運作。
使用第一個儲存程序的結果作為第二個儲存程序的參數。用這種方式比使用一個巨大的修改過的內部聯結查詢序列更容易。
希望這對其他人有所幫助...
<?php
$mysqli = new mysqli("$dbServer", "$dbUser", "$dbPass", "$dbName");
$resultPicks = $mysqli->query("CALL $proc ($searchDate, $maxRSI, $incRSI, $minMACD, $minVol, $minTrades, $minClose, $maxClose)", MYSQLI_STORE_RESULT);
while($picksRow = $resultPicks->fetch_array(MYSQLI_ASSOC)) {
$symbol = $picksRow['Symbol'];
clearStoredResults($mysqli);
$resultData = $mysqli->query("CALL prcGetLastMACDDatesBelowZero('$symbol', $searchDate)", MYSQLI_USE_RESULT);
$dataRow = $resultData->fetch_array(MYSQLI_ASSOC);
echo "<p>$symbol ... 日期數量: " . $dataRow['NumDates'];
$resultData->free();
}
$resultPicks->free();
$mysqli->close();
function clearStoredResults($mysqli_link){
while($mysqli_link->next_result()){
if($l_result = $mysqli_link->store_result()){
$l_result->free();
}
}
}
?>