在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;
?>
如何使用PHP和MySQL将数据导出到CSV文件

CSV(逗号分隔值)是最流行的文件格式,用于以纯文本存储表格数据。
通常,CSV文件用于导入和导出用于在程序之间移动表格数据的数据。
导入和导出数据是Web应用程序中最常用的功能,并且CSV文件格式是最适合的。

在本教程中,我们将展示如何使用PHP将数据从MySQL数据库导出到CSV文件。
此外,我们将学习在PHP中创建CSV文件,并使用PHP在CSV文件中下载并保存MySQL数据。

要演示导出到CSV功能,我们将构建一个示例脚本,该示例脚本将从MySQL数据库导出成员数据,并使用PHP保存在CSV文件中。

日期:2020-06-02 22:15:29 来源:oir作者:oir