我有两个表的mysql数据库。第一个表称为“ uniqueReferences”,第二个表称为“ duplicatedReferences”。这两个表只有两个字段:id字段(自动递增)和一个称为Reference的字段。我想要的如下。尝试在“ uniqueReferences”表中插入引用时,如果引用已存在,则不要将其插入该表中,而应插入表“ duplicatedReferences”中。
因此,我尝试了以下但没有成功的方法。
1->将我的“ uniqueReferences”表的字段引用设置为“ unique”。
2->做以下
try{
$req = $prepared_insertQry_toUniqueRefTable -> execute(array(something));
if($req == 0){
$prepared_insertQry_toDuplicateRefTable->execute(array(something));
}
}
catch(PDOException $e){echo $e->getMessage();}
不幸的是,这是行不通的。我出现以下错误
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry
。希望有人能帮忙。干杯。渣 最佳答案
请参阅代码中的注释:
try{
$req = $prepared_insertQry_toUniqueRefTable -> execute(array(something));
// this never executes because an Exception halts it here
/*if($req == 0){
$prepared_insertQry_toDuplicateRefTable->execute(array(something));
}*/
}
catch(PDOException $e){
// this catch grabs the exception and executes the code within instead
// that code might log an error, echo the error message, or perform
// alternative logic. In your case you want to execute alterntative logic
// ie. your query
$prepared_insertQry_toDuplicateRefTable->execute(array(something));
}