2011-05-17 37 views
1

嗨我有一個關於添加數據到兩個表的問題,繼承人的情況,我想添加一個學生用戶名和密碼在users表和他的個人信息,如姓名和年齡到users_profiles ,,我的繼承人代碼:codeigniter transact添加數據到兩個表

功能ADD_USER($的用戶名,密碼$,$ FNAME,LNAME $,$性別,$地址,$城市,國家$,$角色) {$ 這 - > DB-> 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(); 
} 

回答

2

你不需要當您使用query()方法使用get()。而是存儲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 
); 
+0

它返回一個錯誤。可以請你幫....數據庫出錯 錯誤編號:1054 未知列在「where子句」 SELECT usrID「$用戶名」 FROM用戶WHERE usrName = $用戶名 – 2011-05-17 04:59:27

+0

也同樣它上面的代碼返回錯誤致命錯誤:調用未定義的方法第54行的C:\ wamp \ www \ pgoadmin \ application \ models \ user_model.php中的未定義方法CI_DB_mysql_driver :: row() – 2011-05-17 05:05:03

+0

$ row = $ this-> db-> row() ;返回一個錯誤致命錯誤:調用未定義的方法CI_DB_mysql_driver :: row() – 2011-05-17 05:11:36