在php中将MYSQL feccetch行导出为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

下面是我的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 = 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;好的,我会检查链接。。