我已经在线学习了一些关于学习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的一个问题吗?
答案 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');
}