-4

num_rowsが100万件のレコードを返すクエリがあります。この100万のレコードを1000ずつ繰り返す必要があります。つまり、0から100万で開始し、1000ごとにotuput(Excelファイル)を生成します。

Excel1: will contain records 1~1000
Excel2: will contain records 1001~2000
Excel3: will contain records 2001~3000
Excel14: will contain records 3001~4000

100万に達するまで続きます。私は使用中だと思いますwhile()が、私はまったく安全ではありません、何か助けはありますか?

4

1 に答える 1

1

データベースにクエリを実行していると仮定すると、次のようなものが機能するはずです。

$start = 0;
$end = 1000;

$qstring= 'SELECT col1, col2 FROM mytable ORDER BY col1 LIMIT ?, ?';
$stmt = mysqli_prepare($connection, $qstring);
$stmt->bind_param('ii', $start, $end);
do{
 $stmt->execute();
 $stmt->bind_result($co11, $col2);
 while($stmt->fetch()){
   //do something with $col1, $col2
 }

 $count = $stmt->num_rows
 $start = $end + 1;
 $end = $start +1000;

} while($count == 1000);
于 2013-03-12T17:59:12.997 に答える