1

次のように、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)

4

1 に答える 1

4

この接続を介して最後に成功した挿入の ID を返します。

于 2013-03-17T16:59:29.490 に答える