PHP에서는 데이터베이스 작업에 MySQLI 확장 기능을 사용할 때 일반적으로 쿼리 결과를 CSV 파일로 내보내야합니다. mysqli_result 클래스는 쿼리 결과 세트를 처리 하고이 데이터를 CSV 파일로 내보내려면 쿼리 결과를 한 줄씩 읽고 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";
// 출력 스트림을 엽니 다,또는 생성 및 열 a 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";
// 출력 스트림을 엽니 다,또는 생성 및 열 a 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를 통해 결과를 처리하고 내보낼 수 있습니다.