首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP fputcsv输出双记录

PHP fputcsv输出双记录
EN

Stack Overflow用户
提问于 2011-02-14 23:28:12
回答 3查看 4.2K关注 0票数 2

我使用以下fputcsv代码:

代码语言:javascript
复制
$result = mysql_query('SELECT * FROM `mash`');
if (!$result) die('Couldn\'t fetch records');
$fp = fopen('testCSV.csv', 'w');
if ($fp && $result) {
    while ($row = mysql_fetch_array($result)) {
        fputcsv($fp, array_values($row));
    }
    die;
}
fclose($fp);

它很好地输出了CSV,但是每个mysql列都有两列(所以所有内容都加倍了)

有人知道为什么会这样吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-14 23:36:38

试试这个:

代码语言:javascript
复制
$result = mysql_query('SELECT * FROM `mash`');
if (!$result) die('Couldn\'t fetch records');
$fp = fopen('testCSV.csv', 'w');
if ($fp && $result) {
    while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
        fputcsv($fp, array_values($row));
    }
    die;
}
fclose($fp);

默认情况下,mysql_fetch_array将返回组合数组,这将仅返回关联数组。或者对numbered http://php.net/manual/en/function.mysql-fetch-array.php使用MYSQL_NUM

票数 7
EN

Stack Overflow用户

发布于 2011-02-14 23:35:44

http://php.net/manual/en/function.mysql-fetch-array.php

mysql_fetch_array的第二个参数是这里的关键。默认情况下,获取两个assoc ant int键。你可能想在这里传入MYSQL_ASSOC。

票数 1
EN

Stack Overflow用户

发布于 2011-02-14 23:35:16

默认情况下, 同时返回数值索引和关联索引:

引用手册(重点是我的):

返回与所读取的行相对应的字符串数组,如果没有更多的行,则返回FALSE。返回的数组类型取决于result_type的定义方式。通过使用MYSQL_BOTH (默认),你将获得一个同时具有关联索引和数字索引的数组。使用MYSQL_ASSOC,你只获得关联索引(因为mysql_fetch_assoc()工作),使用MYSQL_NUM,你只获得数字索引(因为mysql_fetch_row()工作)。

解决方案:

使用mysql_fetch_assoc()

  • Or:mysql_fetch_array($result, MYSQL_ASSOC)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4993940

复制
相关文章

相似问题

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