Codeigniter数据库错误:列不存在

时间:2015-09-16 17:03:02

标签: php mysql codeigniter

我已经在线学习了一些关于学习CodeIgniter框架的教程。我已经尝试进行登录和注册功能,所有内容都应该正常工作,但是在我提交注册表后,它会将这个错误发回给我。

  

发生数据库错误

     

错误号码:1054

     

“字段列表”中的未知列'user_name'

     

INSERT INTO'users'('user_name','user_password_hash','user_email')VALUES('Test2','$ 2a $ 08 $ cAkWVsvkaXvaumfcxW0gAOx2mBZMhIXxDpTQpHkOVme8l.1r9mok2','1111')

     

/www/application/models/user_model.php

     

行号:41

User_model.php的第41行是$this->db->insert('users');

public function add_user()
{
    $passunhash = $this->input->post('password');
    $passhash = $this->bcrypt->hash_password($passunhash);
    $uname = $this->input->post('user_name');
    $opin = $this->input->post('pin');

    $this->db->set('user_name', $uname);
    $this->db->set('user_password_hash', $passhash);
    $this->db->set('user_email', $opin);
    $this->db->insert('users');
}

已编辑database.php配置文件以包含正确的数据库名称。

我无法弄清楚为什么它会给我这个数据库错误。列确实存在。这可能是CodeIgniter的一个问题吗?

2 个答案:

答案 0 :(得分:0)

由于mysql命令行中运行SHOW COLUMNS FROM yourDB.users;的注释中提到的zack tanner返回了mysql客户端可以读取的所有列。

我的PHPMYADMIN正在获取旧数据,因此从命令行运行显示实时信息。我能够通过命令行完成其余的命令,以重新构建数据库

答案 1 :(得分:0)

这可能无法解决您的问题,但在插入用户时您可以使用数据数组();并且没有多个db-> set()

public function add_user() {

$passunhash = $this->input->post('password');
$passhash = $this->bcrypt->hash_password($passunhash);

$data = array(
    'user_name' => $this->input->post('user_name'),
    'user_password_hash' => $passhash,
    'user_email' => $this->input->post('pin')
);

$this->db->set($data);
$this->db->insert($this->db->dbprefix . 'users');
}