Dans PHP, lorsque vous utilisez l'extension MySQLI pour les opérations de base de données, nous devons généralement exporter les résultats de la requête en tant que fichier CSV. La classe MySQLI_RESULT est utilisée pour traiter les ensembles de résultats de requête, et pour exporter ces données en tant que fichier CSV, nous devons lire le résultat de la requête ligne par ligne et l'écrire dans le fichier CSV. Cet article expliquera en détail comment utiliser la fonction mysqli_result pour terminer cette opération.
Tout d'abord, nous devons établir une connexion à la base de données pour nous assurer que nous pouvons interroger avec succès les données. Voici un exemple de code pour établir une connexion:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "my_database";
// Créer une connexion
$conn = new mysqli($servername, $username, $password, $dbname);
// Vérifiez la connexion
if ($conn->connect_error) {
die("Échec de la connexion: " . $conn->connect_error);
}
?>
Ensuite, exécutez la requête SQL et obtenez l'objet mysqli_result . Supposons que nous voulons interroger un tableau appelé utilisateurs , interroger les noms et les e-mails de tous les utilisateurs.
<?php
$sql = "SELECT name, email FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// Les données existent,Peut exporter
exportToCSV($result);
} else {
echo "Pas de données";
}
?>
Maintenant, nous utiliserons l'objet mysqli_result pour exporter les résultats de la requête en tant que fichier CSV. Nous implémentons cette fonction via la fonction fputcsv .
<?php
function exportToCSV($result) {
// Définir le nom du fichier
$filename = "users_data_" . date("Y-m-d") . ".csv";
// Ouvrez le flux de sortie,Ou créer et ouvrir un CSV document
$output = fopen('php://output', 'w');
// installation HTTP Informations sur l'en-tête,强制浏览器下载document
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="' . $filename . '"');
// Sortir CSV document的列头
$columns = $result->fetch_fields();
$header = [];
foreach ($columns as $column) {
$header[] = $column->name;
}
fputcsv($output, $header);
// Sortir查询结果
while ($row = $result->fetch_assoc()) {
fputcsv($output, $row);
}
// 关闭Sortir流
fclose($output);
}
?>
Voici le code PHP complet pour exporter les résultats de la requête vers un fichier CSV:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "my_database";
// Créer une connexion
$conn = new mysqli($servername, $username, $password, $dbname);
// Vérifiez la connexion
if ($conn->connect_error) {
die("Échec de la connexion: " . $conn->connect_error);
}
// Exécuter une requête
$sql = "SELECT name, email FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
exportToCSV($result);
} else {
echo "Pas de données";
}
// Exporter CSV fonction
function exportToCSV($result) {
// Définir le nom du fichier
$filename = "users_data_" . date("Y-m-d") . ".csv";
// Ouvrez le flux de sortie,Ou créer et ouvrir un CSV document
$output = fopen('php://output', 'w');
// installation HTTP Informations sur l'en-tête,强制浏览器下载document
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="' . $filename . '"');
// Sortir CSV document的列头
$columns = $result->fetch_fields();
$header = [];
foreach ($columns as $column) {
$header[] = $column->name;
}
fputcsv($output, $header);
// Sortir查询结果
while ($row = $result->fetch_assoc()) {
fputcsv($output, $row);
}
// 关闭Sortir流
fclose($output);
}
// Fermez la connexion de la base de données
$conn->close();
?>
Grâce aux étapes ci-dessus, nous pouvons facilement exporter les résultats de la requête MySQL en tant que fichier CSV. Assurez-vous simplement de vous connecter à la base de données et de demander correctement les données, les résultats peuvent être traités et exportés via MySQLI_RESULT .