質問

挿入で、私は一意の制約をキャッチしていますmysql_errno()1062。

これは正常に機能しますが、既存の行を見つけて変更または変更したいと思います。

INSERT FALEで行IDを取得する方法はありますか? mysql_insert_id()を試しましたが、挿入している(または挿入しなかった)行を返すだけで、0を取得します。

別のmysql_queryを発行し、重複した値で選択を実行する以外に選択肢はありませんか?

これを行うには、より良い、より速く、より経済的な方法がないことを確認したいだけです。

役に立ちましたか?

解決

新規または既存の値を更新する場合、行を挿入しようとしている場合は、 に交換します あなたが必要とするものです。また、考慮してください 挿入...キーアップデート構文の重複に 交換が削除されてから挿入され、挿入されているように関係する制約がある場合。

他のヒント

「ユニークな」キーをテーブルに確認する必要があります(SHOW CREATE TABLE それらをすべてリストし、試みた挿入クエリの関連する値をテーブルに照会します。したがって、フィールドa、b、c、d、b、cを挿入している場合は、それらに固有のキーがあります。

SELECT id, B, C FROM table WHERE B=$B and C=$C;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top