Maison >base de données >tutoriel mysql >Comment puis-je exporter efficacement les résultats d'une requête MySQL au format CSV à l'aide de PHP ?

Comment puis-je exporter efficacement les résultats d'une requête MySQL au format CSV à l'aide de PHP ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-13 01:05:10787parcourir

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

Conversion des requêtes MySQL en CSV en PHP

En PHP, l'exportation de données des requêtes MySQL vers CSV peut être réalisée efficacement sans utiliser de ressources temporaires. fichiers. Voici deux méthodes efficaces pour accomplir cette tâche :

Utilisation de SELECT ... INTO OUTFILE de MySQL :

Cette requête génère directement le résultat dans un fichier CSV :

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

Utilisation du code PHP :

Ce code sélectionne le data, les formate au format CSV et les envoie en réponse :

$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";

Ces deux méthodes convertissent efficacement les résultats des requêtes MySQL au format CSV en PHP, le choix de l'approche dépendant de facteurs tels que la base de données taille et flexibilité souhaitée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn