2
我不得不調試一些遺留的PHP代碼,我打了一個真正的困惑。爲什麼`mysqli_fetch_assoc`返回空對象?
一種方法循環遍歷MySQL表的每一行,並將該行添加到數組中。
不幸的是,該方法返回一個完全空的對象,所以HTTP響應是零長度的。
在調用mysqli_fetch_assoc
時,似乎MySQL表中的一個特定行導致了此問題。我通過在下面的測試代碼中添加縮小到1251行。
$counter = 0
while ($row = mysqli_fetch_assoc($findInfo)) {
// My Debug Test Code: bail out and return row 1251
if ($counter == 1251)
return $row; // this returns a populated array for all rows except 1251, which is blank
// Add the row to our array
array_push($rowArray, $row);
$counter = $counter + 1
}
// Finally, do something with all the rows
return $rowArray
如果我生成的數據表的.CSV轉儲,數據看上去還算無傷大雅 - 1251排在下面的代碼片段開始94340
行:
94339,"Hills Coaches (Wolverhampton)",,,,,,,,,,,,,,,,
94340,"Hinckley Bus",,"via contact form at www.arrivabus.co.uk/contact-arriva/ ","01455 239329",,,"5 Jacknell Road, Dodwells Bridge Industrial Estate, Hinckley LE10 3BS",,,,,,,,,,www.arrivabus.co.uk/hinckleybus/#http://www.arrivabus.co.uk/hinckleybus/#
94341,Hirethisbus.com,,,,,,,,,,,,,,,,
什麼可能導致mysqli_fetch_assoc
到明顯'以這種方式拯救'並且什麼都不返回?我怎麼會調試呢?
那條記錄上的'$ row'究竟是什麼? – Quassnoi
它可能是不相關的,但是你的'94340'這行似乎在某處丟失了一些雙引號。但是,你可以'print_r($ row)'爲'1251'併發布結果嗎? – Ben