php使用fputcsv而不是INTO OUTFILE来保存文件

时间:2013-06-03 15:15:38

标签: php mysql into-outfile

好的,所以我的主机说他们不提供共享服务器的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)

0 个答案:

没有答案