首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将MySQL的结果集创建为CSV字符串

将MySQL的结果集创建为CSV字符串
EN

Stack Overflow用户
提问于 2012-07-26 06:43:19
回答 3查看 762关注 0票数 0

如何使用mysql_fetch_array / mysql_fetch_row结果创建csv文件,其中每行记录都是csv,而下一条记录在新行中。

我试过这个:

代码语言:javascript
运行
复制
$query = "SELECT * FROM myTable DESC LIMIT 10";

$result = mysql_query($query, $conn);
$resultRows = mysql_num_rows($result);

if($resultRows < 1) {
    return array('query' => $query, 'NumberOfRows' => $resultRows, 'status' => 'failure');
};

$rowResult = mysql_fetch_array($result);
//var_dump($rowResult);exit;
foreach($rowResult as $row){

    $resultSet = $row['firstname'];
    $resultSet .= ',' . $row['lastname'];
    $resultSet .= ',' . $row['email'];
    $resultSet .= ',' . $row['phone'];
    $resultSet .= ',' . ($row['address1']);
    $resultSet .= '\n';
    //var_dump($resultSet);exit;
}
EN

Stack Overflow用户

发布于 2012-07-26 06:55:40

如果您希望以CSV格式下载该文件,则需要包括以下标头

代码语言:javascript
运行
复制
header("Content-type: application/x-msdownload");
header("Content-Disposition: attachment; filename=extraction.csv");
header("Pragma: no-cache");
header("Expires: 0");

然后,对于csv部分,您将使用类似以下内容:

代码语言:javascript
运行
复制
echo "FirstName,LastName,Email,Phone,Address\r\n"; //header
while($row = mysql_fetch_array($result)){
  echo "\"$row[firstname]\",\"$row[lastname]\",\"$row[email]\",\"$row[phone]\",\"$row[address]\"\r\n";
} 

但是如果你只是想创建一个文件,你可以使用如下代码:

代码语言:javascript
运行
复制
$fp = fopen('file.csv', 'w');

while($row = mysql_fetch_array($result)){
   fputcsv($fp, $row);
}

fclose($fp);
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11659770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档