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