PHPでは、データベース操作にMySQLI拡張子を使用する場合、通常、クエリ結果をCSVファイルとしてエクスポートする必要があります。 MySQLI_RESULTクラスは、結果セットをクエリを処理し、このデータをCSVファイルとしてエクスポートするために使用され、Query Result Resultを行ごとに読み取り、CSVファイルに書き込む必要があります。この記事では、 mysqli_result関数を使用してこの操作を完了する方法について詳しく説明します。
まず、データベース接続を確立して、データを正常に照会できるようにする必要があります。ここに、接続を確立するためのコード例があります。
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "my_database";
// 接続を作成します
$conn = new mysqli($servername, $username, $password, $dbname);
// 接続を確認してください
if ($conn->connect_error) {
die("接続に失敗しました: " . $conn->connect_error);
}
?>
次に、SQLクエリを実行して、 mysqli_resultオブジェクトを取得します。ユーザーと呼ばれるテーブルを照会し、すべてのユーザーの名前とメールをクエリしたいとします。
<?php
$sql = "SELECT name, email FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// データが存在します,エクスポートできます
exportToCSV($result);
} else {
echo "データなし";
}
?>
次に、 MySQLI_RESULTオブジェクトを使用して、クエリ結果をCSVファイルとしてエクスポートします。 FPUTCSV関数を介してこの関数を実装します。
<?php
function exportToCSV($result) {
// ファイル名を設定します
$filename = "users_data_" . date("Y-m-d") . ".csv";
// 出力ストリームを開きます,または作成して開きます CSV 書類
$output = fopen('php://output', 'w');
// 設定 HTTP ヘッダー情報,强制浏览器下载書類
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="' . $filename . '"');
// 出力 CSV 書類的列头
$columns = $result->fetch_fields();
$header = [];
foreach ($columns as $column) {
$header[] = $column->name;
}
fputcsv($output, $header);
// 出力查询结果
while ($row = $result->fetch_assoc()) {
fputcsv($output, $row);
}
// 关闭出力流
fclose($output);
}
?>
以下は、クエリ結果をCSVファイルにエクスポートするための完全なPHPコードです。
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "my_database";
// 接続を作成します
$conn = new mysqli($servername, $username, $password, $dbname);
// 接続を確認してください
if ($conn->connect_error) {
die("接続に失敗しました: " . $conn->connect_error);
}
// クエリを実行します
$sql = "SELECT name, email FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
exportToCSV($result);
} else {
echo "データなし";
}
// 輸出 CSV 関数
function exportToCSV($result) {
// ファイル名を設定します
$filename = "users_data_" . date("Y-m-d") . ".csv";
// 出力ストリームを開きます,または作成して開きます CSV 書類
$output = fopen('php://output', 'w');
// 設定 HTTP ヘッダー情報,强制浏览器下载書類
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="' . $filename . '"');
// 出力 CSV 書類的列头
$columns = $result->fetch_fields();
$header = [];
foreach ($columns as $column) {
$header[] = $column->name;
}
fputcsv($output, $header);
// 出力查询结果
while ($row = $result->fetch_assoc()) {
fputcsv($output, $row);
}
// 关闭出力流
fclose($output);
}
// データベース接続を閉じます
$conn->close();
?>
上記の手順を通じて、MySQLクエリの結果をCSVファイルとして簡単にエクスポートできます。データベースに接続し、データを正しくクエリするようにしてください。結果はmysqli_resultを介して処理およびエクスポートできます。