次のように、codeigniter と一意のキー制約を持つテーブルを使用します。
UNIQUE KEY `user_identity_unique` (`site_id`,`user_id`,`event_id`)
次に、次の方法でそのテーブルにデータを挿入します。
$this->db->insert( 'events', $data );
return $this->db->insert_id();
キー制約のために挿入が失敗した場合$this->db->insert_id()
、何も挿入されていないにもかかわらず、値が返されます。呼び出しの結果が原因で、mySQL がエラーを返していることは確かです$this->db->_error_message()
...
Duplicate entry '267-83880-07' for key 'user_identity_unique'
これは正しくない動作のようです。これに詳しい人はいますか? last_insert_id がまだ値を返すのはなぜですか? (この場合、まったく関係のない行の ID)