Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mencipta Fail CSV dengan Cekap daripada Pertanyaan MySQL dalam PHP?

Bagaimana untuk Mencipta Fail CSV dengan Cekap daripada Pertanyaan MySQL dalam PHP?

Patricia Arquette
Lepaskan: 2024-12-15 20:34:13
asal
409 orang telah melayarinya

How to Efficiently Create CSV Files from MySQL Queries in PHP?

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;
Salin selepas log masuk

Pilihan 2: Skrip PHP Tersuai

Sebagai alternatif, seseorang boleh menggunakan skrip PHP tersuai untuk mengambil hasil pertanyaan dan menjana CSV. Ini melibatkan:

  1. Melaksanakan pertanyaan SQL menggunakan mysql_query().
  2. Menentukan bilangan medan menggunakan mysql_num_fields().
  3. Mengulang setiap baris dan medan untuk bina data CSV.
  4. Menetapkan pengepala HTTP yang sesuai untuk Fail CSV.
  5. Mengoutputkan pengepala dan data ke penyemak imbas pengguna atau antara muka muat turun.

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";
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan