例如,我在表中有200条记录。我的要求是我需要获取这200条记录并生成csv文件。然后,它将被发送到指定的ftp文件夹。这只是一个例子,但一般来说最好的方法是什么:
方法一:获取数组中的所有ID并获取数组计数并迭代for循环并调用该函数。
$ids_array = array which stores all the id from the related table.
$array_cnt = count($ids_array);
for($i=0;$i<$array_cnt;$i++)
{
generateCsv($ids_array[$i]);
}
这里generateCsv函数将调用200次并生成200个csvs
第二种方法:以逗号分隔从表中获取所有ID并传递给下面的函数
function generateCsv($ids)
{
$qry = "SELECT soem fields from the table where ids IN ('".$ids."')";
// SOME CSV generation code will comes here.
}
那么在上面两种方法中哪一种最好?
答案 0 :(得分:1)
最好的方法是不要循环。 Mysql具有生成CSV的优秀功能。它被称为SELECT INTO OUTFILE
SELECT ... INTO OUTFILE将选定的行写入文件。专栏和 可以指定行终止符以生成特定的输出格式。
生成文件后。考虑使用SFTP或其他安全协议来传输文件,而不是使用以明文形式发送passowrds的FTP。