好的,所以我的主机说他们不提供共享服务器的FILE权限,所以我不能使用INTO OUTFILE
命令,我的目标是使用fputcsv将我的数据库的某些ROWS保存到TXT然后使用LOAD DATA INFILE
将此DATA导入另一个数据库,为了使其工作,我需要以INTO OUTFILE
完全相同的方式保存TXT文件,我想出了这个脚本这样做,但我想知道是否有人可以看看脚本是否可以做得更好。
另外,我如何使用一个$row
来排列所有信息,而不是$push = array($row[0], $row[1], $row[2]);
。
此外,如果有空ROWS要插入\N
而不是任何内容。
function fputcsv2 ($fp, $array, $deliminator="\",\"") {
$line = "";
foreach($array as $val)
{
$val = str_replace("\r\n", "\n", $val);
if(ereg("[$deliminator\"\n\r]", $val))
{
$val = '"'.str_replace('"', '""', $val).'"';
}
$line .= $val.$deliminator;
}
$line = substr($line, 0, (strlen($deliminator) * -1));
$line .= "\"";
return fputs($fp, $line);
}
$fp=fopen("test.txt","w");
while($row = mysql_fetch_array($r0, MYSQL_NUM))
{
$row = array_map('stripslashes', $row);
$push = array($row[0], $row[1], $row[2]);
fputcsv2($fp,$push);
}
fclose($fp)