私は質問があります私は2つのフィールドidを持つユーザーのテーブルを持っています。これはすでにプライマリキーと自動インクリメントですが、別のフィールドはuser_idと呼ばれ、自動インクリメントが必要です挿入された最初の行は10000という値をデータベースに持ち、それ以降は増加します。ユーザーIDを増やす
ここでは、データベースにユーザーを作成するための私の関数です。できるだけ少ないコードで、最初の行を10000として挿入し、その後に1を追加するにはどうすればよいでしょうか。
/**
* Create new user record
*
* @param array
* @param bool
* @return array
*/
function create_user($data)
{
$data['created'] = date('Y-m-d H:i:s');
$this->db->set('username', $data['username']);
$this->db->set('password', $data['password']);
$this->db->set('password2', $data['password2']);
$this->db->set('email', $data['email']);
$this->db->set('first_name', $data['first_name']);
$this->db->set('last_name', $data['last_name']);
$query = $this->db->insert('users');
if ($query)
{
$user_id = $this->db->insert_id();
if ($activated) $this->create_profile($user_id);
return array('user_id' => $user_id);
}
return NULL;
}
これは、フレームワークではなくデータベースで直接行うのが最も簡単です。また、テーブルごとに1つの自動インクリメント列を持つこともできます。 –
BrianDriscollと合意。たとえば、 'user_id'を自動インクリメントキー(Google it)にすることで、これをMySQLで実現できます。 PHPは単一のスレッドに限定されているので、グローバルな '$ user_id'インクリメンタを持つことができますが、現行の実行スレッドにしか残らず、次にスクリプトを実行するときにリセットすることができます。 – buley