私のホスティングは、共有サーバーで FILE 権限を提供しないと言ったので、INTO OUTFILE
コマンドを使用できません。私の目標は、fputcsv を使用して DB の特定の行を TXT に保存し、後で を使用しLOAD DATA INFILE
てこれをインポートすることです別のDBへのDATA。これが機能するためには、TXTファイルをまったく同じ方法で保存する必要があります。INTO OUTFILE
それを行うこのスクリプトを思いつきましたが、誰かがスクリプトができるかどうかを確認できるかどうか疑問に思っていましたより良くする。
$row
また、の代わりにすべての情報を配列するために1 つを使用するにはどうすればよいですか$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)