以下の非常に単純なコードを使用して、MySQLテーブルのすべてのデータ "members"のCSVをエクスポートします。しかし、MySQLテーブルには合計560行ありますが、CSVはMySQLテーブルの行のうち559個しか表示しません(最初のデータベースのテーブルの行は表示されません)。なぜこれが、または私はこの問題を解決するために自分のコードで変更することができます知っていますか?PHP fputcsvがSQLクエリから最初の行を出力しない(最初の行の後に他のすべての行を出力する)
// BEGIN EXPORT ALL FROM EDITOR
if(isset($_POST['export_csv'])) {
$today_date = date('Y-m-d_h-i-s-a', time());
$FileName = "download/report_mailing_list_export_".$today_date.".csv";
$file = fopen($FileName,"w");
$sql = mysqli_query($dbc, "SELECT * FROM member WHERE memberid != 1 AND deleted=0 AND website = 0 ORDER BY last_name, first_name DESC");
$row = mysqli_fetch_assoc($sql);
// Save headings alon
$HeadingsArray=array();
foreach($row as $name => $value){
$HeadingsArray[]=$name;
}
fputcsv($file,$HeadingsArray);
// Save all records without headings
while($row = mysqli_fetch_assoc($sql)){
$valuesArray=array();
foreach($row as $name => $value){
$valuesArray[]=$value;
}
fputcsv($file,$valuesArray);
}
fclose($file);
header("Location: $FileName");
}
// END EXPORT
関連:http://stackoverflow.com/questions/38916163/php-regular-backup-of-mysql-data/38916164#38916164 – e4c5