Penukaran CSV yang Cekap daripada Pertanyaan MySQL dalam PHP
Menukar hasil pertanyaan MySQL kepada CSV ialah tugas biasa dalam pembangunan PHP. Walaupun terdapat pelbagai pendekatan, beberapa kaedah mungkin mengalami masalah mudah alih yang berkaitan dengan pengendalian fail sementara. Artikel ini meneroka kaedah yang menyediakan penyelesaian yang cekap dan mudah alih untuk penukaran CSV tanpa halangan fail sementara.
Kaedah 1: PILIH KE OUTFILE
MySQL menyediakan terbina- dalam mekanisme yang dipanggil SELECT INTO OUTFILE yang membenarkan eksport CSV terus ke dalam fail tertentu laluan:
SELECT * INTO OUTFILE "c:/mydata.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY "\n" FROM my_table;
Arahan ini mencipta fail CSV pada laluan yang ditentukan dengan pembatas medan yang betul dan kepungan medan pilihan.
Kaedah 2: Manipulasi Pertanyaan PHP dan Penggabungan Rentetan
Sebagai alternatif, PHP boleh dimanfaatkan untuk memanipulasi keputusan pertanyaan dan membina Rentetan CSV:
$select = "SELECT * FROM table_name"; $export = mysql_query ( $select ) or die ( "Sql error : " . mysql_error( ) ); $fields = mysql_num_fields ( $export ); // Generate header line for ( $i = 0; $i < $fields; $i++ ) { $header .= mysql_field_name( $export , $i ) . "\t"; } // Iterate and construct CSV string 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 );
Rentetan CSV yang dibina kemudiannya boleh dikeluarkan kepada pengguna melalui pengepala HTTP:
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";
Kedua-dua kaedah menyediakan pilihan penukaran CSV yang cekap dalam PHP. Pendekatan SELECT INTO OUTFILE ialah penyelesaian langsung daripada MySQL, manakala kaedah berasaskan PHP menggunakan manipulasi pertanyaan dan penggabungan rentetan untuk pembinaan CSV. Bergantung pada senario tertentu dan keperluan prestasi, sama ada kaedah boleh digunakan untuk mencapai eksport CSV yang diingini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Keputusan Pertanyaan MySQL dengan Cekap kepada CSV dalam PHP Tanpa Fail Sementara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!