在MySQL数据库中创建表
以下SQL使用MySQL数据库中的某些基本字段创建“成员”表。
“成员”表保存了需要导出的会员信息。
CREATE TABLE `members` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `email` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `phone` varchar(15) COLLATE utf8_unicode_ci NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` enum('1','0') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
连接到MySQL数据库(dbconfig.php)
要从数据库中导出数据,我们需要连接到MySQL数据库。
“dbconfig.php”文件用于使用PHP和MySQL连接和选择数据库。
<?php //DB details $dbHost = 'localhost'; $dbUsername = 'root'; $dbPassword = '*'; $dbName = 'onitroad'; //Create connection and select DB $db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName); if($db->connect_error){ die("Unable to connect database: " . $db->connect_error); }
使用PHP导出到CSV文件
以下两个文件将用于使用PHP和MySQL从数据库导出数据。
'index.php'
Bootstrap库用于样式HTML表和导出链接。
如果我们不想使用Bootstrap样式,我们可以省略它。
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
成员的数据从MySQL数据库中检索并列在HTML表中。
导出链接将在导航到“exportdata.php”文件的表顶部,以将表数据导出到CSV文件。
<div class="container"> <div class="panel panel-default"> <div class="panel-heading"> Members list <a href="exportData.php" class="btn btn-success pull-right">Export Members</a> </div> <div class="panel-body"> <table class="table table-bordered"> <thead> <tr> <th>Name</th> <th>Email</th> <th>Phone</th> <th>Created</th> <th>Status</th> </tr> </thead> <tbody> <?php //include database configuration file include 'dbConfig.php'; //get records from database $query = $db->query("SELECT * FROM members ORDER BY id DESC"); if($query->num_rows > 0){ while($row = $query->fetch_assoc()){ ?> <tr> <td><?php echo $row['name']; ?></td> <td><?php echo $row['email']; ?></td> <td><?php echo $row['phone']; ?></td> <td><?php echo $row['created']; ?></td> <td><?php echo ($row['status'] == '1')?'Active':'Inactive'; ?></td> </tr> <?php } }else{ ?> <tr><td colspan="5">No member(s) found.....</td></tr> <?php } ?> </tbody> </table> </div> </div> </div>
'exportdata.php'
在“exportData.php”文件中,处理以下作品。
- 从MySQL数据库中检索数据。
- 使用“fopen()”函数创建文件指针。
- 指定标题列并放入CSV文件。
- 输出数据的每一行,将行格式化为CSV并写入文件指针。
- 设置“Content-Type”和“Content-indersion”以强制浏览器下载文件而不是显示。
<?php //include database configuration file include 'dbConfig.php'; //get records from database $query = $db->query("SELECT * FROM members ORDER BY id DESC"); if($query->num_rows > 0){ $delimiter = ","; $filename = "members_" . date('Y-m-d') . ".csv"; //create a file pointer $f = fopen('php://memory', 'w'); //set column headers $fields = array('ID', 'Name', 'Email', 'Phone', 'Created', 'Status'); fputcsv($f, $fields, $delimiter); //output each row of the data, format line as csv and write to file pointer while($row = $query->fetch_assoc()){ $status = ($row['status'] == '1')?'Active':'Inactive'; $lineData = array($row['id'], $row['name'], $row['email'], $row['phone'], $row['created'], $status); fputcsv($f, $lineData, $delimiter); } //move back to beginning of file fseek($f, 0); //set headers to download file rather than displayed header('Content-Type: text/csv'); header('Content-Disposition: attachment; filename="' . $filename . '";'); //output all remaining data on a file pointer fpassthru($f); } exit; ?>
CSV(逗号分隔值)是最流行的文件格式,用于以纯文本存储表格数据。
通常,CSV文件用于导入和导出用于在程序之间移动表格数据的数据。
导入和导出数据是Web应用程序中最常用的功能,并且CSV文件格式是最适合的。
在本教程中,我们将展示如何使用PHP将数据从MySQL数据库导出到CSV文件。
此外,我们将学习在PHP中创建CSV文件,并使用PHP在CSV文件中下载并保存MySQL数据。
要演示导出到CSV功能,我们将构建一个示例脚本,该示例脚本将从MySQL数据库导出成员数据,并使用PHP保存在CSV文件中。
日期:2020-06-02 22:15:29 来源:oir作者:oir