我對MSSQL使用PDO,並且需要運行嵌套查詢。他們都是準備好的陳述。如果我嘗試使用fetch()方法,則內部查詢立即失敗,所以我使用了fetchAll()。所以,我得到這樣的事情,有計劃,產品和預算:PHP,使用嵌套查詢的PDO,結果損壞
$pgm_stmt->execute();
$pgm_res = $pgm_stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($pgm_res as $pgmrow) {
$prod_stmt->execute(array($pgmrow['ID']));
$prod_res = $prod_stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($prod_res as $prodrow) {
$bdgt_stmt->execute(array($pgmrow['ID'], $prodrow['ID']));
$bdgt_res = $bdgt_stmt->fetchAll(PDO::FETCH_NUM);
foreach ($bdgt_res as $bdgtrow) {
... work here
}
}
}
OK,一切通過作品的第一次,但是當它循環回第二個程序,該產品的結果集被莫名其妙地損壞。當我在fetchAll()之後立即轉儲$ prod_res變量時,這些值是從內存的其他部分,其他數組的位等隨機分配的。當然,它因爲$ prodrow ['ID']值未定義而失敗,因爲整個結果集被破壞。
有人可以幫我解決這個問題嗎?我很難過。
謝謝。
你確定你需要嵌套的東西,而不是一些聯接嗎? – PeeHaa
如果沒有看到查詢就很困難。 –
是的,我需要嵌套的東西。查詢實際上非常複雜,結構非常規範。試圖把所有這些放在一起將是可怕的。 –