SQL、PHP 导出为 CSV

Posted

技术标签:

【中文标题】SQL、PHP 导出为 CSV【英文标题】:SQL, PHP export to CSV 【发布时间】:2017-06-24 08:16:10 【问题描述】:

我创建了这个 php 脚本来从我的数据库中提取一些数据并将其导出到 CSV。

我已将标题设置为 0、1、2,但我需要在第 0 列中添加一些静态文本。

例如静态、股票代码、数量。

正在从数据库中提取股票代码、数量。

任何帮助将不胜感激。

我的代码如下。

// open connection to mysql database
$connection = mysqli_connect($host, $username, $password, $dbname) or die("Connection Error " . mysqli_error($connection));

// fetch mysql table rows
$sql = "select ManufacturerPartNumber, (QuantityOnHand - QuantityOnSalesOrder) from iteminventory";
$result = mysqli_query($connection, $sql) or die("Selection Error " . mysqli_error($connection));

$fp = fopen('inventory.csv', 'w');

     fputcsv($fp, array('0', '1', '2'));


while($row = mysqli_fetch_assoc($result))

     fputcsv($fp, $row);


fclose($fp);

//close the db connection
mysqli_close($connection);

?>

【问题讨论】:

第 0 列中的“静态”是什么意思?某种 ID? 【参考方案1】:

如果我理解正确,您想将某种 ID 放入 csv 的第一列,因此您必须在从 sql 结果中获得的数组的第一个位置添加“静态”项。

编辑 - 更新为在第一列具有静态值

例子:

...
while($row = mysqli_fetch_assoc($result))

    array_unshift($row, 0);
    fputcsv($fp, $row);

...

【讨论】:

【参考方案2】:

成功了

   $id = 0; // or whatever else you want to have in the first column
   while($row = mysqli_fetch_assoc($result))
   
    array_unshift($row, $id);
    fputcsv($fp, $row);
    $id;
    

【讨论】:

如果您希望所有行的第一列中的值都相同(但我想知道为什么 :-)),则不需要 $i 变量。我更新了我的答案...【参考方案3】:

试试这个:

$header = array('Static', 'Stock code', 'QTY');

$fp = fopen('inventory.csv', 'w');

fputcsv($fp, $header);

【讨论】:

以上是关于SQL、PHP 导出为 CSV的主要内容,如果未能解决你的问题,请参考以下文章

php 将数据从SQL导出到CSV

PHP - 导出CSV函数重复每个条目的标题

使用 PHP 获取 CSV 导出的列名和数据 (MYSQL)

通过 PHP 导出为 CSV

将mysql的查询结果导出为csv

在 PHP 中 JSON 数组导出为 CSV