Mencipta CSV daripada Pertanyaan MySQL dalam PHP
Dalam PHP, seseorang boleh menukar pertanyaan MySQL kepada fail CSV dengan cekap. Mengelakkan fail sementara meningkatkan kemudahalihan dengan menghapuskan keperluan untuk menetapkan kebenaran sistem fail dan menguruskan laluan direktori. Selain itu, fail CSV yang dijana hendaklah termasuk baris pengepala dengan nama medan.
Untuk melaksanakan tugas ini, seseorang boleh menggunakan pendekatan berikut:
Pilihan 1: Menggunakan Kaedah INTO OUTFILE
MySQL menyediakan kaedah INTO OUTFILE untuk terus mengeluarkan hasil pertanyaan kepada fail CSV. Sebagai contoh, pertanyaan berikut mengeksport data daripada jadual my_table ke fail CSV bernama c:/mydata.csv:
SELECT * INTO OUTFILE "c:/mydata.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY "\n" FROM my_table;
Pilihan 2: Skrip PHP Tersuai
Sebagai alternatif, seseorang boleh menggunakan skrip PHP tersuai untuk mengambil hasil pertanyaan dan menjana CSV. Ini melibatkan:
Coretan kod berikut menunjukkan pendekatan ini:
$select = "SELECT * FROM table_name"; $export = mysql_query ( $select ) or die ( "Sql error : " . mysql_error( ) ); $fields = mysql_num_fields ( $export ); for ( $i = 0; $i < $fields; $i++ ) { $header .= mysql_field_name( $export , $i ) . "\t"; } while( $row = mysql_fetch_row( $export ) ) { $line = ''; foreach( $row as $value ) { if ( ( !isset( $value ) ) || ( $value == "" ) ) { $value = "\t"; } else { $value = str_replace( '"' , '""' , $value ); $value = '"' . $value . '"' . "\t"; } $line .= $value; } $data .= trim( $line ) . "\n"; } $data = str_replace( "\r" , "" , $data ); if ( $data == "" ) { $data = "\n(0) Records Found!\n"; } header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=your_desired_name.xls"); header("Pragma: no-cache"); header("Expires: 0"); print "$header\n$data";
Dengan menggunakan kaedah ini, seseorang boleh menukar hasil pertanyaan MySQL dengan cekap kepada fail CSV sambil memastikan kemudahalihan dan kemasukan pengepala.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Fail CSV dengan Cekap daripada Pertanyaan MySQL dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!