我將盡我所能解釋我的目標是什麼。我在網上搜索的所有東西都不足以讓我獲得一個想法。PHP - 插入到多個表中,每個表都帶有標識字段
首先,這是一個PHP任務,我們必須將CSV文件加載到MySQL數據庫中。
現在,每個表格(共4個)具有完全相同的字段值。我試圖完成的是使用每個循環的填充每個表與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
。希望這可以理解。謝謝
multi_query不叫這樣一個更聰明的方法。如果您使用的是程序變體,那麼第一個參數是連接,然後是查詢。 – Palantir
除了明顯的語法錯誤(你需要在'INTO「中有一個空格......),這聽起來像是一個非常糟糕的數據庫設計,最好的辦法是規範你的數據,而不是重複自己 –
另外,試着打印你的$ import來檢查它裏面是否有正確的語法和變量(提示:它沒有) – Palantir