在php中将MYSQL feccetch行导出为csv
下面是我的php程序的一部分,它是为了从输入ID中从mysql表中获取行而编写的。但是我想把结果直接放到“.csv”文件中。我知道php为此内置了函数,但我无法有效地包含它。那么,有人能给出一个使用高级php函数导出到csv的方向吗在php中将MYSQL feccetch行导出为csv,php,mysql,csv,Php,Mysql,Csv,下面是我的php程序的一部分,它是为了从输入ID中从mysql表中获取行而编写的。但是我想把结果直接放到“.csv”文件中。我知道php为此内置了函数,但我无法有效地包含它。那么,有人能给出一个使用高级php函数导出到csv的方向吗 $file = fopen("fetched.csv","w"); for($i=0;$i<=$len;$i++) { $lo = $locus[$i]; mysqli_select_db($conn,"microarray"); $query = my
$file = fopen("fetched.csv","w");
for($i=0;$i<=$len;$i++)
{
$lo = $locus[$i];
mysqli_select_db($conn,"microarray");
$query = mysqli_query("SELECT * FROM anatomy WHERE locus_id = "$lo"");
while ($row = mysqli_fetch_row($query))
{
}
}
您不一定需要高级php函数。csv文件只是由逗号分隔的列组成的序列。试试这个
function addRowToCsv(& $csvString, $cols) {
$csvString = implode(',', $cols) . PHP_EOL;
}
$csvString = '';
$first = true;
while ($row = mysqli_fetch_assoc($query)) {
if ($first === true) {
$first = false;
addRowToCsv($csvString, array_keys($row));
}
addRowToCsv($csvString, $row);
}
header('Content-type: text/csv');
header('Content-disposition: attachment;filename=MyCsvFile.csv');
echo $csvString;
请注意,addRowToCsv的第一个参数是通过引用传递的。这不是必需的,您可以轻松地使用返回值,但这正是我要做的
-编辑-
我刚刚注意到您正在将输出保存到一个文件中,而不是将其作为下载。如果这是您想要做的,则使用上述方法,但替换
header('Content-type: text/csv');
header('Content-disposition: attachment;filename=MyCsvFile.csv');
echo $csvString;
与
file_put_contents('MyCsvFile.csv', $csvString);
你的意思是like?可能重复的请参考下面的链接[MYSQL TO CSV][1][1]:你的查询中有一个语法错误:从剖析中删除$query=mysqli_querySELECT*和$query=mysqli_querySELECT*,其中locus_id=.$lo;好的,我会检查链接。。