在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
