、我々はそれを解決するために、いくつかのパスを持って幸せだ:
1は、LOAD DATA INFILE
あなたは直接CSVファイルをインポートすることができます偉大なMySQLの機能、単一のクエリで。
あなたがここには、LOAD DATA INFILEである
マニュアルページを探しているSQLコマンド:http://dev.mysql.com/doc/refman/5.1/en/load-data.html
クイック例:
LOAD DATA INFILE 'fileName'
INTO TABLE tableName
FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(
field1,
field2,
field3,
@variable1,
@variable2,
etc
)
set
(
field4 = concat(@variable1,@variable2)
);
かなり基本的な例ですが、それはのほとんどをカバーあなたが欲しいもの。マニュアルページには、非常に複雑な作業を行う方法の詳細が記載されています。
** 2。 CSVを解析してプログラム的に挿入する**
set_time_limit(10000);
$con = new mysqli("example.com", "user", "password", "database");
if (mysqli_connect_errno()) {
trigger_error('Database connection failed: ' . mysqli_connect_error(), E_USER_ERROR);}
$fp = fopen("file.csv", "r");
while(!feof($fp)) {
if(!$line = fgetcsv($fp, 1000, ';', '"')) {
continue;
}
$importSQL = "INSERT INTO table_name VALUES('".$line[0]."','".$line[1]."','".$line[2]."')";
$qry = $con->query(($importSQL) ;
if($qry === false) {
trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $con->error, E_USER_ ERROR);
}
}
fclose($fp);
希望するものがあります。
'LOCAL INFILE'とその他のserver_はファイルがマシーンの上にあれば動作しません – JOUM
OK @Olaf Dietscheはより良い点を作っています:)設定! – JOUM
"動作しません"というエラーメッセージも意味のある診断でもありません。どのようなエラーが出ますか? – symcbean