【发布时间】:2014-12-01 02:49:42
【问题描述】:
我真的被困在这里我有这个 PHP 脚本:
<?php
$databasehost = "localhost";
$databasename = "";
$databasetable = "";
$databaseusername="";
$databasepassword = "";
$fieldseparator = ",";
$lineseparator = "\n";
$enclosedbyquote = '"';
$csvfile = "db-core/feed/csv/csv.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());
}
$pdo->exec("TRUNCATE TABLE `$databasetable`");
$affectedRows = $pdo->exec("
LOAD DATA LOCAL INFILE ".$pdo->quote($csvfile)." REPLACE INTO TABLE `$databasetable`
FIELDS OPTIONALLY ENCLOSED BY ".$pdo->quote($enclosedbyquote)."
TERMINATED BY ".$pdo->quote($fieldseparator)."
LINES TERMINATED BY ".$pdo->quote($lineseparator)."
IGNORE 1 LINES");
echo "Loaded a total of $affectedRows records from this csv file.\n";
?>
如您所见,该脚本正在使用 CSV 文件截断我的表格。它替换了当前 MySQL 表中的所有数据。
此数据用于创建包含库存车辆的列表页面,每行包含一辆车辆的数据。该脚本每天运行一次,以替换不再库存的车辆。
我现在想为我的每个 SQL 行提供它自己的页面,我被告知我需要在 'id' 键上使用 'NOT NULL AUTO_INCREMENT' 属性。
但是,当我的表被截断时,每次运行我的脚本时不会删除 ID?
我可以在我的脚本中添加任何东西来解决这个问题吗?
谢谢
【问题讨论】: