我将尽我最大的努力来解释我的目标是什么。我在网上搜索的所有东西对我来说都不够相关,无法获得一个想法。
首先,这是一个PHP任务,我们必须将CSV文件加载到MySQL数据库中。
现在,每个表(总共4个)都有完全相同的字段值。我试图完成的是使用for each循环,该循环使用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。希望这是可以理解的。谢谢
发布于 2015-10-17 01:33:27
将数据导入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数据的方式:)
https://stackoverflow.com/questions/33176108
复制相似问题