我使用以下fputcsv代码:
$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列都有两列(所以所有内容都加倍了)
有人知道为什么会这样吗?
发布于 2011-02-14 23:36:38
试试这个:
$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
发布于 2011-02-14 23:35:44
http://php.net/manual/en/function.mysql-fetch-array.php
mysql_fetch_array的第二个参数是这里的关键。默认情况下,获取两个assoc ant int键。你可能想在这里传入MYSQL_ASSOC。
发布于 2011-02-14 23:35:16
默认情况下, 同时返回数值索引和关联索引:
引用手册(重点是我的):
返回与所读取的行相对应的字符串数组,如果没有更多的行,则返回FALSE。返回的数组类型取决于result_type的定义方式。通过使用MYSQL_BOTH (默认),你将获得一个同时具有关联索引和数字索引的数组。使用MYSQL_ASSOC,你只获得关联索引(因为mysql_fetch_assoc()工作),使用MYSQL_NUM,你只获得数字索引(因为mysql_fetch_row()工作)。
解决方案:
使用mysql_fetch_assoc()
mysql_fetch_array($result, MYSQL_ASSOC)的
https://stackoverflow.com/questions/4993940
复制相似问题