MySQL 查詢僅傳回一行:偵錯與解決
使用MySQL 時,遇到PHP 腳本僅令人擷取困惑。當查詢本身有效,但腳本的實作阻止它檢索所有預期的行時,就會出現此問題。
解決問題
考慮提供的PHP 程式碼,其中執行查詢以從資料表中擷取行:
$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5"); $query2 = mysql_fetch_assoc($quer); print_r($query2);
雖然SQLfastsearch 表中擷取行:
雖然SQL 查詢返回多個行,腳本僅顯示一行。出現此行為的原因是 mysql_fetch_assoc() 預設情況下僅取得一行。要檢索所有行,我們需要使用循環來迭代它們。
解決方案:使用while 循環擷取多行
$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5"); while ($row = mysql_fetch_assoc($query)) { print_r($row); }
修正後的程式碼片段將使用while 循環迭代查詢結果並列印每一行:
在此更新的程式碼中, mysql_fetch_assoc() 在循環內調用,並且$row變數被指派當前行。這允許循環遍歷查詢結果中的每一行,從而允許列印所有行。以上是為什麼我的 PHP 中的 MySQL 查詢只會回傳一行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!