发生数据库错误

时间:2014-01-25 10:42:45

标签: php mysql codeigniter localhost

Error Number: 1054

Unknown column 'username='xc'' in 'where clause'

    SELECT `id`, `username`, `password` 
    FROM (`users`) 
    WHERE `username='xc'` 
    AND `password='b587c9a76c9cd8dfc40a757616c1e47d'` 
    LIMIT 1

Filename: C:\xampp\htdocs\rpo\system\database\DB_driver.php

Line Number: 330

代码:

function login($username,$password) {
    $this->db->select('id,username,password'); 
    $this->db->from('users'); 
    $this->db->where('username='."'".$username."'");
    $this->db->where('password='."'".MD5($password)."'"); 
    $this->db->limit(1); 
    $query=$this->db->get();

    if($query->num_rows()==1) {
        return $query->result();
    } else {    
        return false;
    }

5 个答案:

答案 0 :(得分:3)

试试这个

  SELECT `id`, `username`, `password` 
  FROM `users` 
  WHERE `username`='xc' 
  AND `password`='b587c9a76c9cd8dfc40a757616c1e47d' LIMIT 1

你应该在列名称周围使用反引号而不是整个句子或整个where子句。

将您的行更改为:

 $this->db->where('username' , $username );
 $this->db->where('password' , MD5($password) );

答案 1 :(得分:0)

你有一个错误,`在用户名条件中的位置

改变这个:

WHERE `username='xc' 

到此:

WHERE `username`='xc'

更正完整代码:

SELECT `id`, `username`, `password` 
  FROM `users` 
  WHERE `username`='xc' 
  AND `password`='b587c9a76c9cd8dfc40a757616c1e47d' LIMIT 1

更改codeigniter查询尝试此:

$this->db->select('id,username,password');
$this->db->from('users');
$this->db->where('username= "'.$username.'"');
$this->db->where('password = "'.MD5($password).'"');
$this->db->limit(1);

答案 2 :(得分:0)

DESCRIBE table_name //返回表结构

检查列名称,然后重试

答案 3 :(得分:0)

修复codeigniter方法:

您可以将条件作为字符串或数组传递。

  1. 以字符串形式传递:
  2.   

    $这 - > DB-化合物其中( '用户名',$用户名);

         

    $ this-> db-> where('password',MD5($ password));

    2.作为组合数组传递

      

    $这 - > DB-化合物其中(阵列( '密码'=> MD5($密码), '用户名'=> $用户名));

答案 4 :(得分:0)

试试这个

$this->db->select('id,username,password');
$this->db->from('users');
$this->db->where("username ='$username'");
$this->db->where("password ='MD5($password)'");
$this->db->limit(1);
$query=$this->db->get();

if($query->num_rows()==1)
{
    return $query->result();
}
else
{
    return false;
}