私は2つのテーブルを持つmysql dbを持っています。最初のテーブルは 'uniqueReferences'と呼ばれ、2番目のテーブルは 'duplicatedReferences'と呼ばれます。 2つのテーブルには、idフィールド(自動インクリメント)とReferenceというフィールドの2つのフィールドしかありません。私が望むのは以下の通りです。 'uniqueReferences'テーブルにrefを挿入しようとすると、参照がすでに存在する場合は、そのテーブルに挿入するのではなく、 'duplicatedReferences'テーブルに挿入してください。PHP MySQL PDO - >値がすでに別のクエリを実行している場合にINSERT ON
私が試したが動作しなかったのは以下のとおりです。
1->私の 'uniqueReferences'テーブルのフィールドリファレンスを '一意'に設定します。
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
。誰かが助けることを願っています。乾杯。 Marc
'$ prepared_insertQry_toDuplicateRefTable ...'を 'catch'ブロックに置くことはできませんでした(例外が '重複エントリ'エラーであることを確認した後)? – Travesty3
こんにちはTravesty :)助けようと努力しています。私はかなりpdoに新しいとキャッチブロックは例外を得るためだと思った。だから私はあなたが示唆していることを実際には得ていません... – Marc
このcatchは、例外が発生したときに取るアクションを定義します。これはエラーメッセージで何かをしている可能性があります。 – prodigitalson