對不起,如果這之前已經問過,但我無法找到任何東西會涉及我在這裏的情況下SE。PHP - CSV導入自動增加ID
我想導入一個CSV文件到我的Mysql數據庫表中,這兩個表的CSV具有完全相同的數量和順序的列,但表格的列ID
在CSV文件中沒有丟失。
我想要實現的是將CSV導入到表中,同時生成一個隨每條記錄自動增加的ID
數字。這似乎不可能,因爲CSV似乎總是希望將其數據插入表中的第一列,但在我的情況下,我需要它成爲第二列。
我該如何解決這個問題,是否有我可以學習的任何參考代碼?我目前正在處理這種PDO方法,但是我遇到了上述困難。
PHP
<?php
$databasehost = "localhost";
$databasename = "test";
$databasetable = "sample";
$databaseusername="test";
$databasepassword = "";
$fieldseparator = ",";
$lineseparator = "\n";
$csvfile = "filename.csv";
if(!file_exists($csvfile)) {
die("File not found. Make sure you specified the correct path.");
}
try {
$pdo = new PDO("mysql:host=$databasehost;dbname=$databasename",
$databaseusername, $databasepassword,
array(
PDO::MYSQL_ATTR_LOCAL_INFILE => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
)
);
} catch (PDOException $e) {
die("database connection failed: ".$e->getMessage());
}
$affectedRows = $pdo->exec("
LOAD DATA LOCAL INFILE ".$pdo->quote($csvfile)." INTO TABLE `$databasetable`
FIELDS TERMINATED BY ".$pdo->quote($fieldseparator)."
LINES TERMINATED BY ".$pdo->quote($lineseparator));
echo "Loaded a total of $affectedRows records from this csv file.\n";
?>
謝謝
你使用phpMyAdmin嗎? –
我需要通過CronJob在PHP基礎上完成此操作。但我有phpMyAdmin可用。 – Armitage2k
你可以顯示你的代碼到目前爲止嗎? – LBA