Я пытаюсь захватить несколько строк с помощью этих строк из базы данных MySQL:MySQL Query захватывает только одну строку вместо нескольких. Зачем?
$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)
Я хотел бы получить несколько строк (так несколько идентификаторов)
Пожалуйста, скажите мне, что я делаю неправильно. Я все еще новичок в MySQL.
Не причина, по которой вы получаете только одну строку, но _do not_ call 'mysqli_query()' in 'mysqli_fetch _ *()'. Вызовите его и сохраните его ресурс в переменной, проверьте FALSE на эту переменную, затем выберите. –
Просто любопытно, почему это хорошая практика? Спасибо. Это приводит к плохому кэшированию? –
Вызов запроса внутри извлечения не позволяет проверить наличие ошибок. И хотя это может работать (без проверки на ошибки), когда ожидается только одна строка, она не может использоваться вообще при извлечении нескольких строк в цикле 'while', что вы будете делать большую часть времени, потому что он повторно запускает запрос на каждой итерации цикла. –