0

私はこのコードを持っています。私がやりたいことは、最後にユーザーテーブルに挿入された主キーを取得し、それをライブラリテーブルの外部キーに入れることです。$request でそれを行う方法がわかりませんか、ここで何をすればよいですか?

public function register($request = array()) {
    $data = array(
        'user_name' => $request['username'],
        'password' => $request['password'],
        'email' => ($request['email']) 
    );
    $data1 = array(
        'user_id' => '5',// this is where I have to put the primary key from last table
        'library_name' => $request['lib_name']
    );

    $this->model->insert('user', $data);
    $this->model->insert('library', $data1);
    $this->redirect('uploadSongs.php');
}
4

4 に答える 4

1

mysql_insert_id()を使用する

-- 以前の INSERT または UPDATE ステートメントによって AUTO_INCREMENT 列に対して生成された値を返します。

于 2012-07-11T12:06:07.583 に答える
0

みんなありがとう、ロジックを変更するだけでうまくいきました。私はそれを愚かに使用していて、挿入クエリを配置する場所がわかりませんでした。指定されたクエリを挿入

public function register($request = array()) {
$data = array(
    'user_name' => $request['username'],
    'password' => $request['password'],
    'email' => ($request['email']) 
);

$this->model->insert('user', $data);
$data1 = array(
    'user_id' => mysql_insert_id(),// now it works as insert has been done above .... 
    'library_name' => $request['lib_name']
);
$this->model->insert('library', $data1);
$this->redirect('uploadSongs.php');
于 2012-07-11T15:26:26.913 に答える
0

あなたはこのようにすることができます

public function register($request = array()) {
    $data = array(
        'user_name' => $request['username'],
        'password' => $request['password'],
        'email' => ($request['email']) 
    );

    $this->model->insert('user', $data);
   $user_id = $this->model->select('user', $data); //select user_id from db 
   $data1 = array(
        'user_id' => $user_id ,
        'library_name' => $request['lib_name']
    );



    $this->model->insert('library', $data1);
    $this->redirect('uploadSongs.php');
}
于 2012-07-11T12:04:35.537 に答える