我有一个用于从rss文件导入数据的脚本,并且我想在插入之前清空表,因此我的数据库中没有任何旧条目,但是我无法正确使用语法,因为没有任何内容被删除。
这是我正在尝试的:
try {
$db->beginTransaction();
$stmt = $db->prepare("DELETE FROM $table");
$stmt = $db->prepare("INSERT INTO $table(id,name) VALUES(:id,:name)ON DUPLICATE KEY UPDATE name=:name");
$stmt->execute(array(':id' => $id, ':name' => $name));
$db->commit();
} catch(PDOException $ex) {
//Something went wrong rollback!
$db->rollBack();
echo $ex->getMessage();
}
编辑
我已经尝试过使用Truncate,但是由于truncate不会清空/删除任何内容,因此认为我需要删除:
try {
$db->beginTransaction();
$stmt = $db->prepare("TRUNCATE TABLE $table");
$stmt = $db->prepare("INSERT INTO $table(id,name) VALUES(:id,:name)ON DUPLICATE KEY UPDATE name=:name");
$stmt->execute(array(':id' => $id, ':name' => $name));
$db->commit();
} catch(PDOException $ex) {
//Something went wrong rollback!
$db->rollBack();
echo $ex->getMessage();
}
最佳答案
它是TRUNCATE TABLE `tableName`
,而不是DELETE FROM tableName
。
这是Manual page on the subject.
关于php - 插入pdo之前先清空表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15368151/