1

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();
}    
4

3 に答える 3

4

TRUNCATE TABLE `tableName`はありませんDELETE FROM tableName

これは、この件に関するマニュアルページです。

于 2013-03-12T17:35:51.950 に答える
0

TRUNCATE TABLE $tableテーブルを空にし、自動番号付けをリセットします。

于 2013-03-12T17:35:58.103 に答える