我試圖通過從MySQL數據庫這些行搶多行:MySQL查詢只抓取一行而不是多行。爲什麼?
$msg_sql = "SELECT * FROM ".TABLE_PREFIX."quotes ORDER BY rand(curdate()) LIMIT 3";
$msg_res = mysqli_fetch_assoc(mysqli_query($link, $msg_sql));
print_r($msg_res);
不過,我只得到1行回來。那就是:
Array ([id] => 1 [message] => test_message [Link] => link here)
我希望得到多行(這麼多的ID)
請告訴我,我在做什麼錯。我還是MySQL的新手。
不是你得到只有一排,但_DO not_調用'mysqli_query()''裏面的mysqli_fetch原因_ *()'。調用它並將其資源存儲在變量中,檢查該變量的FALSE,然後獲取。 – 2012-04-10 19:16:27
只是好奇,爲什麼這是好的做法?謝謝。它會導致緩存不佳嗎? – 2012-04-10 19:22:09
在提取內部調用查詢使得無法檢查錯誤。雖然它可能在沒有檢查錯誤的情況下工作,但只有one_行會返回時,在'while'循環中獲取多行時根本無法使用,這是您大部分時間執行的操作,因爲它會在每個循環迭代中重新執行查詢。 – 2012-04-10 19:23:57