我正在运行一个mysql语句,尽管值不正确,但实际上它的结果为true。贝娄是功能
<?php
public function login_user($username, $password){
if(!empty($username) && !empty($password)){
$sql = "SELECT * FROM `users` WHERE `user_name`='$username' AND `user_password`='$password'";
$query = $this->link->query($sql);
if($this->link->error){
//return false;
$this->log_db_error($this->link->error, $sql);
return false;
}
else{
return true;
}
}
else{
return false;
}
}
?>
使用params调用此函数并传递正确的用户名和错误的密码实际上返回true,我在哪里弄乱?任何帮助
答案 0 :(得分:0)
因为即使数据库中不存在用户名和密码的组合,sql查询也完全有效。
您可以通过以下方式实现目标: 检查查询是否返回空数据集。
一些提示: 1.您的查询很容易sql注入。最好使用prepare然后绑定所有输入参数。 2.在数据库中保持密码(如md5或BCrypt)是很好的。