好的,所以我的主机说他们不提供共享服务器上的 FILE 权限,所以我不能使用该INTO OUTFILE
命令,我的目标是使用 fputcsv 将我的数据库的某些 ROWS 保存到 TXT 中,然后使用LOAD DATA INFILE
导入这个DATA 到另一个数据库,为了让它工作,我需要以完全相同的方式保存 TXT 文件INTO OUTFILE
,我想出了这个脚本,但我想知道是否有人可以看看脚本是否可以做得更好。
另外,我如何使用一个$row
来排列所有信息,而不是$push = array($row[0], $row[1], $row[2]);
.
此外,如果有空行要插入\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)