mysqli->multi_query を使用して 1 回のクエリ呼び出しで次のすべてを実行できるようにする必要があるため、これが難しいのです。次の列で構成されるテーブルがあります。
- ID
- Eメール
- event_promo_code
- event_id
id
スクリプトが実行されるとき、両方のANDevent_id
が既存のレコードと一致する場合 (一方のキーまたは他方のキーだけでなく)、新しい行を挿入するか、行を更新できる必要があります。
私が今持っているものは次のとおりです。
INSERT INTO `rsvps`
SET id='$rsvpID', email='$rsvpEmail',
event_promo_code='$rsvpEventCode', event_id='$eventID'
ON DUPLICATE KEY UPDATE id='$rsvpID',
email='$rsvpEmail', event_promo_code='$rsvpEventCode', event_id='$eventID';
id
は私の主キーです。キーとしても設定event_id
すると、id がレコードに一致するかイベントがレコードに一致するときに更新されますが、更新する前に両方が同時に一致するかどうかは確認されません。