【问题标题】:Codeigniter database retrieving both in uppercase, lowercase and mixed caseCodeigniter 数据库检索大写、小写和混合大小写
【发布时间】:2016-08-14 09:27:46
【问题描述】:

我的代码

// My code:

$this->db->select('*')
->from('tbl_login')
->where(['username'=>$this->input->post('username'),'password'=>$this->input->post('password')]);
$result = $this->db->get()->result();

if($result)
    var_dump($result)
else
    echo "not fount";

无论我输入什么“admin1”或“ADMIN1”和“password1”或“PASSWORD1” 它从表中检索数据。 但我真正想要的是当大小写正确匹配时将检索数据。

谁能帮忙???...

【问题讨论】:

  • 您的数据库列可能使用不区分大小写的排序规则定义。将它们的排序规则更改为区分大小写,你应该没问题。
  • 警告:不要编写自己的用户身份验证系统,因为有很多很多方法会导致危险的错误。使用纯文本密码就是这样一种失败。 Codeigniter has many packages 已经可以使用了。我强烈建议您找到一个适合您的需求,或者足够接近您可以对其进行调整以适应您正在做的事情。

标签: mysql database codeigniter codeigniter-3


【解决方案1】:

试试这个

  $query = $this->db->select("*")->from("tbl_login")->where("BINARY username= '".$this->input->post('username')."' and password = '".$this->input->post('password')."'");

  $result = $this->db->get()->result();

   if($result)
      var_dump($result)
   else
      echo "not found";

注意:在查询中的 where 条件之前基本上使用 BINARY

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    相关资源
    最近更新 更多