使用准备好的SQL语句捕获重复条目

时间:2015-07-17 07:58:14

标签: php mysql error-handling

我想用准备好的MySQL语句来处理“重复条目”错误。

我有线条

$result = $db->prepare("INSERT INTO comptability (id_comptability, order_id, Reduction, `%TVA`, Facture) VALUES (?, ?, ?, ?, ?)");
$result->execute(array($no_facture, $id_order, $reduc_tot, $tot, $date));

如果没有任何错误,想要执行一些代码。如果出现错误,则显示弹出窗口并使编程死亡。

我已经尝试了

if($result === false)//Catch error
{}
else //It worked
{}

但它没效果

1 个答案:

答案 0 :(得分:0)

您可以使用INSERT IGNORE,然后使用PDOStatement::rowCount

检查受影响的行数

概念应该遵循:

$result = $db->prepare("INSERT IGNORE INTO comptability (id_comptability, order_id, Reduction, `%TVA`, Facture) VALUES (?, ?, ?, ?, ?)");
if ($result->execute(array($no_facture, $id_order, $reduc_tot, $tot, $date))) {
  if ($result->rowCount() == 0) {
   // You had a duplicate record.
  } else {
   // all good.
  }
}