現在の位置: ホーム> 最新記事一覧> fputcsv()を使用して、mysqli_resultをファイルとしてエクスポートします

fputcsv()を使用して、mysqli_resultをファイルとしてエクスポートします

M66 2025-05-28

fputcsv()は、配列のデータをファイルに書き込み、CSV形式にフォーマットするPHPの組み込み関数です。各行配列はCSV形式の行に変換され、配列内の各要素はコンマ(または指定されたセパレーター)によって分離されます。

関数プロトタイプ:

 bool fputcsv ( resource $handle , array $fields [, string $separator = "," [, string $enclosure = "\"" [, string $escape = "\\" ]]] )
  • $ハンドル:ターゲットファイルのファイルハンドルは、有効なファイルリソースである必要があります。

  • $フィールド:CSVファイルに書き込まれる配列、通常はデータベースクエリから得られた結果です。

  • $セパレーター:デリミタを指定し、デフォルトはコンマになります。

  • $エンクロージャー:引用された文字を指定し、デフォルトは二重引用符になります。

  • $ ESCAPE :エスケープキャラクターを指定し、デフォルトはバックスラッシュになります。

ステップ1:データベースに接続してクエリを実行します

まず、データベースに接続してクエリを実行してデータを取得する必要があります。以下は、基本的なmysqliデータベース接続とクエリ操作です。

 <?php
// データベースに接続します
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "your_database_name";

$conn = new mysqli($servername, $username, $password, $dbname);

// 接続を確認してください
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// クエリを実行します
$sql = "SELECT id, name, email FROM users";  // サンプルクエリ
$result = $conn->query($sql);

// クエリの結果を確認してください
if ($result->num_rows > 0) {
    // データをエクスポートできます
} else {
    echo "0 results";
}
?>

ステップ2:CSVファイルを作成して開きます

FOPEN()関数を使用して、CSVファイルを作成および開き、エクスポートされたデータを保存します。

 <?php
// Aを開きます CSV 書類(そうでない場合は、作成します)
$file = fopen("export.csv", "w");

// 書く CSV 書類头部
$headers = ['ID', 'Name', 'Email'];
fputcsv($file, $headers);
?>

ステップ3:クエリ結果をCSVファイルに書き込む

次に、 fputcsv()を使用して、query results resurts line by行をCSVファイルに書き込みます。 mysqli_fetch_assoc()またはその他の関数を使用して、クエリの各データを取得してファイルに書き込む必要があります。

 <?php
// 逐行读取查询结果并書く CSV 書類
while($row = $result->fetch_assoc()) {
    // 将每一行数据書く CSV 書類
    fputcsv($file, $row);
}

// 关闭書類
fclose($file);
?>

ステップ4:データベース接続を閉じます

エクスポートが完了したら、データベース接続を閉じることを忘れないでください。

 <?php
// データベース接続を閉じます
$conn->close();
?>

完全なコードの例:

 <?php
// データベースに接続します
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "your_database_name";

$conn = new mysqli($servername, $username, $password, $dbname);

// 接続を確認してください
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// クエリを実行します
$sql = "SELECT id, name, email FROM users";  // サンプルクエリ
$result = $conn->query($sql);

// クエリの結果を確認してください
if ($result->num_rows > 0) {
    // Aを開きます CSV 書類(そうでない場合は、作成します)
    $file = fopen("export.csv", "w");

    // 書く CSV 書類头部
    $headers = ['ID', 'Name', 'Email'];
    fputcsv($file, $headers);

    // 逐行读取查询结果并書く CSV 書類
    while($row = $result->fetch_assoc()) {
        fputcsv($file, $row);
    }

    // 关闭書類
    fclose($file);
    echo "Data has been exported to export.csv";
} else {
    echo "0 results";
}

// データベース接続を閉じます
$conn->close();
?>

完全なプロセスの概要:

  1. データベースに接続するMySQLIを使用してデータベースに接続します。

  2. クエリを実行します:SQLクエリを実行して、 mysqli_result resultセットを取得します。

  3. csvファイルを作成します。fopen ()を使用してcsvファイルを開き、 fputcsv()でヘッダーに書き込みます。

  4. データのエクスポートfputcsv()ループを使用して、各データの行をCSVファイルに書き込みます。

  5. 接続の閉鎖:エクスポートが完了したら、ファイルハンドルとデータベース接続を閉じます。

このようにして、データベースからデータをCSVファイルに簡単にエクスポートして、データの保存、移行、または分析を容易にすることができます。