插入 pdo 之前清空表

Tom*_*sen 1 php mysql pdo

我有一个从 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();
}    
Run Code Online (Sandbox Code Playgroud)

编辑

我尝试过使用 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();
}    
Run Code Online (Sandbox Code Playgroud)

Mad*_*iha 5

TRUNCATE TABLE `tableName`不是DELETE FROM tableName

这是有关该主题的手册页。