codeigniter transact将数据添加到两个表中

时间:2011-05-17 04:06:20

标签: php database codeigniter transactions

嗨,我有一个关于将数据添加到两个表中的问题,继续这种情况,我想在用户表中添加一个用户名和密码的学生,并将他的个人信息(如姓名和年龄)添加到users_profiles中,继承我的代码:< / p>

function add_user($ username,$ password,$ fname,$ lname,$ sex,$ address,$ city,$ country,$ role)     {         $这 - &GT; DB-&GT; trans_start();

    $user = array(
    'usrName'=>$username,
    'usrPassword'=>sha1($password),
    'roleID'=>$role
    );

    $this->db->insert('users', $user);

    $this->db->query('SELECT usrID FROM users WHERE usrName=$username');

    $usrID = $this->db->get(); //i know this is wrong thats why i need help

    $user_profile = array(
    'usrpFirstName'=>$fname,
    'usrpLastName'=>$lname,
    'usrpSex'=>$sex,
    'usrpAddress'=>$address,
    'usrpCity'=>$city,
    'usrpState'=>$country,
    'usrID'=>**$usrID** // this is the foreign key from users table
    );

    $this->db->insert('users_profiles', $user_profile);

    $this->db->trans_complete();
}

1 个答案:

答案 0 :(得分:2)

使用get()方法时,无需使用query()。而是存储query()方法的结果,并使用result()row()来访问数据。

所以你的代码应该是这样的:

$result = $this->db->query("SELECT usrID FROM users WHERE usrName=$username");

$row = $result->row();

$user_profile = array(
  'usrpFirstName'=>$fname,
  'usrpLastName'=>$lname,
  'usrpSex'=>$sex,
  'usrpAddress'=>$address,
  'usrpCity'=>$city,
  'usrpState'=>$country,
  'usrID'=>$row->usrID
);