Hướng dẫn php mysqli export to csv - php mysqli xuất sang csv

Tôi đã cố gắng trong nhiều ngày để xuất từ ​​một truy vấn một số giá trị trong .csv với mysqli, nhưng tôi có vấn đề khi xuất, mọi thứ đang xuất khẩu sang một cột, thay vào đó tôi cần xuất khẩu như mã SQL (Tôi có 3 cột được chọn và tôi cần 3 cột xuất trong .cvs). Bellow bạn có thể tìm thấy hai mã:

1) Mã này tạo cơ sở dữ liệu, bảng và chèn các giá trị:

connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
// Create database
$sql = "CREATE DATABASE myDB";
if ($conn->query($sql) === TRUE) {
    echo "Database created successfully";
} else {
    echo "Error creating database: " . $conn->error;
}
// Create connection pt a crea tabela
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
// sql to create table
$sql = "CREATE TABLE MyGuests (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    firstname VARCHAR(30) NOT NULL,
    lastname VARCHAR(30) NOT NULL,
    email VARCHAR(50),
    reg_date TIMESTAMP
)";
if ($conn->query($sql) === TRUE) {
    echo "Table MyGuests created successfully";
} else {
    echo "Error creating table: " . $conn->error;
}
// Create connection pt a insera valori
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
// Insert value in db
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
    VALUES ('John', 'Doe, Mark', ''),
    ('Mary', 'Moe-Johny', ''),
    ('Julie', 'Dooley', '')";
if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "
" . $conn->error; } $conn->close(); ?>

2) Mã này dành cho xuất trong .csv:

connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
"; } } else { echo "0 results"; } $conn->close(); ?>

Tôi đang sử dụng phiên bản Xamp này:

Apache/2.4.18 (Win32) OpenSSL/1.0.2E PHP/7.0.1

Phiên bản máy khách cơ sở dữ liệu: LibMysQL - MySQLND 5.0.12 -DEV - 20150407 - $ ID: 7E72F9690B1498A1BEAD7A637C33A831C0D2F655 $

Tiện ích mở rộng PHP: Tài liệu MySQLI

Phiên bản PHP: 7.0.1

Phiên bản này tạo ra một số vấn đề cho mã MySQL, đó là lý do tại sao tôi thích mã trong MySQLI. Cám ơn rất nhiều!

Hướng dẫn này giúp nhập dữ liệu CSV vào MySQL và xuất dữ liệu từ tệp MySQL sang CSV. Tệp CSV được sử dụng để nhập và xuất dữ liệu để di chuyển/trao đổi thông tin dữ liệu giữa các ứng dụng web. Bạn có thể sử dụng API REST hoặc ứng dụng web để nhập/xuất dữ liệu CSV.

Dữ liệu ứng dụng web được lưu trữ, truy cập và trao đổi giữa các thành phần khác nhau bằng định dạng CSV. CSV (Giá trị được phân tách bằng dấu phẩy) Định dạng tệp phổ biến nhất để lưu trữ dữ liệu trong văn bản thuần túy.

Bạn cũng có thể kiểm tra các hướng dẫn khác về dữ liệu xuất với PHP

  • Xuất dữ liệu để xuất sắc với PHP và MySQL
  • Xuất dữ liệu sang CSV và tải xuống bằng PHP và MySQL
  • Nhập tệp CSV vào MySQL bằng Php
  • Xuất dữ liệu bảng HTML sang Excel, CSV, PNG và PDF bằng plugin jQuery
  • Xuất dữ liệu DataTable JQuery sang PDF, Excel, CSV và Sao chép

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách nhập và xuất dữ liệu từ cơ sở dữ liệu MySQL sang/từ tệp CSV bằng PHP. Tôi sẽ không tạo biểu mẫu HTML để tải lên tệp CSV, tôi sẽ cung cấp tập lệnh PHP sẽ tải và lưu dữ liệu tệp CSV vào PHP.

Tạo kết nối cơ sở dữ liệu MySQL

Hãy để tạo bảng nhân viên trong cơ sở dữ liệu MySQL, việc sử dụng dữ liệu CSV nhập và xuất vào cơ sở dữ liệu. SQL sau đây tạo bảng nhân viên với một số trường cơ bản trong cơ sở dữ liệu MySQL. Bảng nhân viên giữ thông tin nhân viên cần được xuất khẩu.
The following SQL creates an employees table with some basic fields in the MySQL database. The employees table holds the employee information which needs to be exported.

SQL sau đây tạo ra một bảng nhân viên với một số trường cơ bản trong cơ sở dữ liệu MySQL. Bảng nhân viên giữ thông tin nhân viên cần được xuất khẩu.

CREATE TABLE `employees` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
 `age` int(11) NOT NULL,
 `salary` int(11) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Bây giờ, tôi sẽ tạo một tệp Connection.php và thêm mã dưới đây vào tệp này. Mã dưới đây giúp kết nối với cơ sở dữ liệu MySQL, cũng sử dụng để chọn cơ sở dữ liệu bằng PHP và MySQL.

//DB details
 $dbHost     = 'localhost';
 $dbUsername = 'root';
 $dbPassword = '*';
 $dbName     = 'phpflow';//Create connection and select DB
 $db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName); 
//Create connection and select DB
 $db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName);

if($db->connect_error){

     die("Unable to connect database: " . $db->connect_error);

 }

Xuất tệp CSV bằng PHP bằng cách sử dụng PHP

Hãy để dữ liệu xuất từ ​​cơ sở dữ liệu bằng PHP và MySQL. Chúng tôi sẽ tạo tệp export_csv.php và ghi mã để tìm nạp dữ liệu từ bảng nhân viên và lưu nó vào tệp emp.csv. Chúng tôi sẽ lưu trữ tất cả các nhân viên đã xuất dữ liệu vào tệp employee.csv.

Tệp này sẽ có các bước sau để xuất dữ liệu vào MySQL.

  • Tìm nạp dữ liệu từ bảng nhân viên.
  • Mở tệp bằng hàm
    connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
    $sql = "SELECT id, firstname, lastname FROM MyGuests";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
        // output data of each row
        while($row = $result->fetch_assoc()) {
            echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
    "; } } else { echo "0 results"; } $conn->close(); ?>
    0.
  • Xác định các cột tiêu đề và đặt chúng vào tệp CSV.
  • Đọc từng cái một mỗi hàng của dữ liệu và ghi vào con trỏ tệp.
  • Chúng tôi sẽ buộc trình duyệt tải xuống tệp CSV bằng
    connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
    $sql = "SELECT id, firstname, lastname FROM MyGuests";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
        // output data of each row
        while($row = $result->fetch_assoc()) {
            echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
    "; } } else { echo "0 results"; } $conn->close(); ?>
    1 và
    connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
    $sql = "SELECT id, firstname, lastname FROM MyGuests";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
        // output data of each row
        while($row = $result->fetch_assoc()) {
            echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
    "; } } else { echo "0 results"; } $conn->close(); ?>
    2.

Hãy để thêm mã dưới đây vào tệp export_csv.php.

query("SELECT * FROM employees ORDER BY id DESC");

if($query->num_rows > 0){
    $delimiter = ",";
    $filename = "employee.csv";

    //create a file pointer for write
    $f = fopen('php://memory', 'w');

    //set column headers
    $fields = array('ID', 'Name', 'Age', 'Salary');
    fputcsv($f, $fields, $delimiter);

    //write to file
    while($row = $query->fetch_assoc()){
        $lineData = array($row['id'], $row['name'], $row['age'], $row['salary']);
        fputcsv($f, $lineData, $delimiter);
    }
    fseek($f, 0);

    //set headers to download file
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="' . $filename . '";');

    fpassthru($f);
}
exit;

Nhập dữ liệu CSV vào cơ sở dữ liệu MySQL

Hãy cùng nhập dữ liệu tệp

connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
"; } } else { echo "0 results"; } $conn->close(); ?>
4 vào cơ sở dữ liệu MySQL. Tôi sẽ sử dụng bảng nhân viên để chèn dữ liệu từ tệp CSV. Tạo tệp
connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
"; } } else { echo "0 results"; } $conn->close(); ?>
5 và thêm mã bên dưới.

Tôi giả sử bạn có tệp tải lên biểu mẫu HTML và muốn tập lệnh để lưu trữ dữ liệu tệp CSV vào cơ sở dữ liệu MySQL.

Tệp này sẽ có các bước sau để xuất dữ liệu vào MySQL.

  • Tìm nạp dữ liệu từ bảng nhân viên.
  • Mở tệp bằng hàm
    connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
    $sql = "SELECT id, firstname, lastname FROM MyGuests";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
        // output data of each row
        while($row = $result->fetch_assoc()) {
            echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
    "; } } else { echo "0 results"; } $conn->close(); ?>
    0.
  • Xác định các cột tiêu đề và đặt chúng vào tệp CSV.

Đọc từng cái một mỗi hàng của dữ liệu và ghi vào con trỏ tệp.

Chúng tôi sẽ buộc trình duyệt tải xuống tệp CSV bằng connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT id, firstname, lastname FROM MyGuests"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
"; } } else { echo "0 results"; } $conn->close(); ?> 1 và connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT id, firstname, lastname FROM MyGuests"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
"; } } else { echo "0 results"; } $conn->close(); ?> 2.

Hãy để thêm mã dưới đây vào tệp export_csv.php.

Làm cách nào để xuất tệp CSV từ PHP?

Làm thế nào để xuất dữ liệu sang CSV ?..
Bước 1: Tạo tiêu đề. ....
Bước 2: Buộc bộ đệm đầu ra vào CSV đầu ra với tên tệp cụ thể. ....
Bước 3: Tạo một tệp bằng PHP. ....
Bước 4: Làm sạch bộ đệm đầu ra. ....
Bước 5: Viết tiêu đề vào tệp CSV. ....
Bước 6: Viết nội dung thực tế vào tệp CSV ..

Làm cách nào để xuất dữ liệu MySQL từ CSV sang Excel bằng PHP MySQL?

Xuất dữ liệu sang tệp CSV bằng PHP (ExportData ...
Lấy dữ liệu từ cơ sở dữ liệu MySQL ..
Tạo một con trỏ tệp bằng hàm fopen () ..
Chỉ định các cột tiêu đề và đặt dữ liệu vào tệp CSV ..
Đầu ra từng hàng của dữ liệu, dòng định dạng dưới dạng CSV và ghi vào tệp con trỏ ..

Làm cách nào để xuất cơ sở dữ liệu MySQL sang tệp CSV?

Xuất bảng vào định dạng CSV bằng cách sử dụng MySQL Workbench..
Chạy câu lệnh/truy vấn và nhận kết quả của nó ..
Sau đó, trong bảng kết quả, nhấp vào tùy chọn "Xuất bản ghi vào tệp bên ngoài".Bản ghi được sử dụng cho tập kết quả ..
Cuối cùng, một hộp thoại mới sẽ được hiển thị.Ở đây, chúng ta cần cung cấp một tên tệp và định dạng của nó ..

Làm cách nào để nhập và xuất CSV bằng PHP và MySQL?

Cách nhập và xuất các tệp CSV bằng PHP và MySQL..
Tạo cơ sở dữ liệu trong MySQL ..
Nhập CSV vào MySQL trong PHP ..
Hiển thị các bản ghi đã lưu ..
Xuất MySQL sang CSV với PHP ..