我将尽最大努力解释我的目标是什么。我在网上搜索的所有东西都不足以让我获得一个想法。
首先,这是一个PHP分配,我们必须将CSV文件加载到MySQL数据库中。
现在,每个表(共4个)具有完全相同的字段值。我想要完成的是使用for每个循环,用CSV文件中的信息填充每个表。我知道我可以通过为每个表和CSV文件使用while循环来实现这一点,但我正在努力超越要求并了解有关PHP的更多信息。这是我正在努力完成的代码:
$files = glob('*.txt'); // .txt required extension
foreach($files as $file) {
if (($handle = fopen($file, "r")) !== FALSE) {
while (($data = fgetcsv($handle,4048, ",")) !== FALSE) {
echo $data[0]; // making sure data is correct
$import = "INSERT INTO".basename($file)."(id,itemName,price) VALUES('$data[0]','$data[1]','$data[2]')";
multi_query($import) or die (mysql_error());
}
fclose($handle);
}
else {
echo "Could not open file: " . $file;
}
}
每个CSV文件都包含id
,itemName
和price
。希望这是可以理解的。谢谢
答案 0 :(得分:1)
将数据导入MySQL的方式适用于少量数据。但是,如果要导入大量卷(数千行),最好的方法是使用infile
将其直接导入MySQL。例如:
LOAD DATA LOCAL INFILE '/path/to/your_file.csv'
INTO TABLE your_table_name
FIELDS TERMINATED BY ','
ENCLOSED BY '"' LINES
TERMINATED BY '\n' (id, itemName, price)
这是导入CSV数据的更智能方式:)