Maison >base de données >tutoriel mysql >Comment créer efficacement des fichiers CSV à partir de requêtes MySQL en PHP ?
Création d'un CSV à partir de requêtes MySQL en PHP
En PHP, on peut convertir efficacement une requête MySQL en un fichier CSV. Éviter les fichiers temporaires améliore la portabilité en éliminant le besoin de définir les autorisations du système de fichiers et de gérer les chemins de répertoire. De plus, le fichier CSV généré doit inclure une ligne d'en-tête avec les noms de champs.
Pour exécuter cette tâche, on peut utiliser les approches suivantes :
Option 1 : Utilisation de la méthode INTO OUTFILE
MySQL fournit la méthode INTO OUTFILE pour afficher directement les résultats de la requête dans un fichier CSV. Par exemple, la requête suivante exporte les données de la table my_table vers un fichier CSV nommé c:/mydata.csv:
SELECT * INTO OUTFILE "c:/mydata.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY "\n" FROM my_table;
Option 2 : Script PHP personnalisé
Alternativement, on peut utiliser un script PHP personnalisé pour récupérer les résultats de la requête et générer le CSV. Cela implique :
L'extrait de code suivant illustre cette approche :
$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";
En employant ces méthodes, on peut convertir efficacement les résultats des requêtes MySQL en fichiers CSV tout en garantissant la portabilité et l'inclusion des en-têtes.
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!