PHP - 插入多个表,每个表都带有identifycal字段

时间:2015-10-16 17:19:13

标签: php mysql csv

我将尽最大努力解释我的目标是什么。我在网上搜索的所有东西都不足以让我获得一个想法。

首先,这是一个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文件都包含iditemNameprice。希望这是可以理解的。谢谢

1 个答案:

答案 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数据的更智能方式:)