0

コードをできるだけ短く書こうとしましたが、ここで奇妙なことがわかりました。

「while ループ」内でクエリをフェッチすると、システムがクラッシュします。

これが例です。

$sql = 'SELECT * FROM table';
while ($row = $db_ob->query($sql)->fetch_array()){
echo $row['one'];
}

これは私のマシンが原因ですか、それともどうすればよいですか?

2番目の例のように書けば問題ない

$data =  $db_ob->query($sql)->fetch_array()['one'];
4

2 に答える 2

3

これは、ループの反復ごとにクエリを再実行するためであり、終了することはありません。クエリを 1 回だけ実行してから、結果を反復処理する必要があります。

$sql = 'SELECT * FROM table';
$result = $db_ob->query($sql);
while ($row = $result->fetch_array()) {
    echo $row['one'];
}
于 2013-11-13T08:34:31.920 に答える
0

あなたのスクリプトはmysqlクエリを実行し、データを「N」回取得します。したがって、次のように書き直す必要があります。

$sql = 'SELECT * FROM table';
$Result = $db_ob->query($sql);
while ($row = $Result->fetch_array()){
    echo $row['one'];
}
于 2013-11-13T08:36:47.253 に答える