Export Data from MySQL to CSV Using PHP

Export Data from MySQL to CSV Using PHP
Written by Yogesh Koli

Export MySQL data to CSV

A step-by-step guide to export data to CSV from MySQL using PHP

It is a basic task for any application that needs a reporting feature to CSV; here I am going to explain how to generate a CSV file from the MySQL records.

Let’s get started:

Step 1 – Create Sample Database and Required Table along with the data:

Create Database table with sample records, here I am going to use a users table, which is going to have users details, go ahead and use following SQL statements to create table and insert the records. (Note: you can skip this step if you have your existing database tables)

IMAGE : Users Table Structure

Users Table Structure

Existing records from mysql database

Existing Mysql Records to Export

Step 2 Create PHP to MySQL Database Connection Script:

Create Database configuration file, which is going help us to connect to MySQL from PHP file.

Step 3 – Add Sample Index Page to List out the Records:

Create index.php file and list records.


Step 4- Exporting MySQL Data to CSV file PHP Script:

Create export.php file to export data from Mysql to CSV.


Click OK to export the data to CSV and your file get’s downloaded



If you check download file, you get records listed, as showing below:

Records from CSV files

Records from CSV files

We are done, you can download the complete source for reference use following links to download or checkout live demo.

Learn how to import data from CSV to MySQL  – Import Data from CSV File to MySQL Using PHP

About the author

Yogesh Koli

Yogesh Koli is a software engineer & a Blogger lives in India. He's driven by an addiction to learning and a love for adventure. he has 5+ years of experience working with the front-end, back-end, web application development, and system design.

  • Arvind Srivastava

    Thanks for nice tutorial Mysql to csv, I have problem, I don’t want to export all mysql data, I just want to export first Name and email from MYSQL to CSV, How i can do that ?

    • Simply replace the SQL Query from SELECT * FROM users to SELECT first_name, email from users and update fputcsv($output, array(‘No’, ‘First Name’, ‘Last Name’, ‘Email’)); to fputcsv($output, array(‘No’, ‘First Name’, ‘Email’));

      and your done!