2

mysql テーブルに csv ファイルをインポートしようとしています。これは私のコードです:

<?

error_reporting(0);
mysql_connect("localhost","root","");
mysql_select_db("gerov");


$filename='test.csv';

$handle = fopen("$filename", "r");
while (($data = fgetcsv($handle, ",")) !== FALSE)
//foreach(fgetcsv($handle,",") as $data)
{
$import="INSERT into castigatori (id,cod,nume,oras,medalie) values('','$data[0]','$data[1]','$data[2]','$data[3]')";
mysql_query($import) or die("mysql_error()");
print $import."<br>";
}
fclose($handle);
print "Import done";

?> 

インポートは問題なく完了しましたが、csv ファイルの各単語の間にコンマを入れた場合のみです。したがって、a、b、c、d を挿入したい場合は、それらの間にカンマを入れた場合にのみインポートされます。次のように別のセルに単語を書きたい: abcd コンマを入れずに、単語の間にタブ区切りを作成する必要はありません。タブで区切られた単語を書くと、MySQL テーブルでは a ;b ;c ;d のように表示されます。それらを正しく挿入するために何をすべきか誰か教えてもらえますか?

4

2 に答える 2

2

MySQL は LOAD DATA INFILE を提供します。http://dev.mysql.com/doc/refman/5.1/en/load-data.html
を 確認してください。 特に:

    [{FIELDS | COLUMNS}
    [TERMINATED BY 'string']
    [[OPTIONALLY] ENCLOSED BY 'char']
    [ESCAPED BY 'char']
于 2012-07-04T14:09:24.083 に答える
0

編集

区切り文字をスペースにしたい場合は、次のようにします。

fgetcsv($handle, 0, " ")
于 2012-07-04T14:07:44.843 に答える