【发布时间】:2017-09-13 22:24:22
【问题描述】:
如果 PDO 发生重复输入错误,我想收到错误消息。
这是我在可能出现重复条目时使用的代码,因为 id 是唯一键:
$movetotable = $conn->prepare("INSERT INTO `$table` SELECT * FROM `$trashtable` WHERE id = :id");
$movetotable->bindParam(':id', $id, PDO::PARAM_STR);
$movetotable->execute();
我希望 PHP PDO 可以实现,我知道这一点:PDO::errorCode() 但我根本不知道如何在 if 语句中使用它。
提前致谢
【问题讨论】:
-
如果你知道,可能会有错误,为什么不检查重复条目,在你做你的插入查询?
-
通过匹配表中的 id 检查重复数据并从那里采取相应措施
-
如果您不必对重复条目执行任何特定逻辑,则可以使用 INSERT IGNORE INTO 或使用 ON DUPLICATE KEY UPDATE 选项
-
@Philipp @Akin 我不明白该怎么做?我应该在 $movetotable = $conn->prepare("INSERT INTO
$tableSELECT * FROM$trashtableWHERE id = :id"); 使用 PHP 之后立即执行此操作吗?查询本身? -
@Aruna INSERT IGNORE INTO 不是一个选项,因为我不想丢失该行。 ON DUPLICATE KEY UPDATE 对我来说是一个选项,我已经尝试过了,但唯一得到的是下一个错误(语法错误)。它说我没有以正确的方式使用重复密钥更新。你知道如何在我上面的问题中使用它吗?
标签: php mysql pdo duplicates