【问题标题】:codeigniter transact add data into two tablecodeigniter transact 将数据添加到两个表中
【发布时间】:2011-08-26 22:28:52
【问题描述】:

嗨,我在将数据添加到两个表时遇到问题,情况如下,我想在 users 表中添加一个学生,他的用户名和密码以及他的个人信息(如姓名和年龄)到 users_profiles,这是我的代码:

function add_user($username,$password,$fname,$lname,$sex,$address,$city,$country,$role) { $this->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();
}

【问题讨论】:

    标签: php database codeigniter transactions


    【解决方案1】:

    使用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
    );
    

    【讨论】:

    • 它返回一个错误。你能帮忙.... 发生数据库错误 错误号:1054 'where 子句'中的未知列'$username' SELECT usrID FROM users WHERE usrName=$username
    • 同样与上面的代码一样,它也返回错误致命错误:调用 C:\wamp\www\pgoadmin\application\models\user_model.php 中未定义的方法 CI_DB_mysql_driver::row() 第 54 行
    • $row = $this->db->row();返回错误致命错误:调用未定义的方法 CI_DB_mysql_driver::row()
    • 代码可以运行,但是从用户表插入数据后,下一个查询即使已经插入用户表也无法读取用户名=$username
    • 'where 子句'中的未知列'sample' SELECT usrID FROM users WHERE usrName=sample,,,但在phpmyadmin usrName 示例中已插入
    猜你喜欢
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 2016-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多