首頁 >資料庫 >mysql教程 >為什麼我的 PHP 程式碼只會從帶有 LIMIT 子句的 MySQL 查詢傳回一行?

為什麼我的 PHP 程式碼只會從帶有 LIMIT 子句的 MySQL 查詢傳回一行?

Linda Hamilton
Linda Hamilton原創
2024-12-06 11:37:121020瀏覽

Why Does My PHP Code Only Return One Row from a MySQL Query with a LIMIT Clause?

使用PHP 解析MySQL 中的單行回傳

嘗試使用PHP 的mysql_query() 和mysql_fetch_assocSQL 資料庫擷取多行時(mysql)函數,使用者可能會遇到只有一行的問題返回。

問題:


考慮以下PHP 代碼:

$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5");
$query2 = mysql_fetch_assoc($query);
print_r($query2);

此代碼根據標籤搜尋從快速搜尋表中檢索資料。但是,它不會傳回 LIMIT 子句指定的所有五行,而是只傳回第一行作為關聯數組。

解決方案:

要修正此問題,程式碼必須修改如下:

$query = mysql_query("SELECT `title`,
                             `url_title`
                        FROM `fastsearch`
                       WHERE `tags`
                            LIKE '%$q%'
                       LIMIT 5");

while ($row = mysql_fetch_assoc($query)) {
    print_r($row);
}
  • 已修正拼字: 變數名稱$query 拼字正確。
  • 行迭代: mysql_fetch_assoc() 一次回傳一行。透過在 while() 迴圈中使用它,每次迭代都會將目前行指派給 $row 變數。這允許檢索和顯示 LIMIT 約束內的所有行。

以上是為什麼我的 PHP 程式碼只會從帶有 LIMIT 子句的 MySQL 查詢傳回一行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn