>데이터 베이스 >MySQL 튜토리얼 >PHP를 사용하여 MySQL 쿼리 결과를 어떻게 효율적으로 CSV로 내보낼 수 있습니까?

PHP를 사용하여 MySQL 쿼리 결과를 어떻게 효율적으로 CSV로 내보낼 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-13 01:05:10741검색

How Can I Efficiently Export MySQL Query Results to CSV Using PHP?

PHP에서 MySQL 쿼리를 CSV로 변환

PHP에서는 임시 쿼리를 사용하지 않고도 MySQL 쿼리의 데이터를 CSV로 효율적으로 내보낼 수 있습니다. 파일. 다음은 이 작업을 수행하는 두 가지 효과적인 방법입니다.

MySQL의 SELECT ... INTO OUTFILE 사용:

이 쿼리는 결과를 CSV 파일로 직접 출력합니다.

SELECT * INTO OUTFILE "c:/mydata.csv"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY "\n"
FROM my_table;

PHP 사용 코드:

이 코드는 데이터를 선택하고 CSV 형식으로 형식을 지정한 다음 응답으로 보냅니다.

$select = "SELECT * FROM table_name";

$export = mysql_query ( $select ) or die ( "Sql error : " . mysql_error( ) );

$fields = mysql_num_fields ( $export );

// Get header
for ( $i = 0; $i < $fields; $i++ )
{
    $header .= mysql_field_name( $export , $i ) . "\t";
}

// Get data
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";
}

// Send response
$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";

이 두 가지 방법 모두 MySQL 쿼리 결과를 CSV로 효과적으로 변환합니다. 데이터베이스 크기, 원하는 유연성 등의 요인에 따라 접근 방식을 선택하여 PHP 형식을 지원합니다.

위 내용은 PHP를 사용하여 MySQL 쿼리 결과를 어떻게 효율적으로 CSV로 내보낼 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.