私は、MySQLデータベースからこれらのラインを介して複数の行をつかむしようとしている:MySQL複数クエリではなく1行を取得するクエリのみ。どうして?
$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行を取り戻します。である:私は複数行(ので、複数のIDを)取得したい
Array ([id] => 1 [message] => test_message [Link] => link here)
私が間違ってやっているものを私に教えてください。私はまだMySQLが初めてです。
なぜなら、1行しか取得していないのではなく、mysqli_fetch _ *()内で 'mysqli_query()'を呼び出していないからです。変数を呼び出してその変数に変数を格納し、その変数に対してFALSEをチェックしてからフェッチします。 –
なぜこれが良い習慣であるかということだけに興味がありますか?ありがとうございました。キャッシングが貧弱になっていますか? –
フェッチ内でクエリを呼び出すと、エラーをチェックすることができなくなります。そして、_only one_ rowが返されると期待されるときには(エラーをチェックすることなく)動作するかもしれませんが、whileループで複数の行をフェッチするときにはまったく使用できません。これはほとんどの場合です。各ループ反復でクエリを再実行します。 –