我在这里遇到一些问题。我正在尝试进行查询以从网站数据库中获取数据,但是即使我知道它们存在,查询也不返回任何行。变量$uslog
和$ushas
是每个用户的用户名和哈希码,在这种情况下,我的测试用户是'PixelKnight1398'和'1398'这些cookie都是这样保存的。当我尝试在phpMyAdmin中运行MySQL代码时,它工作得很好,但从这个意义上说它不起作用。如果这是一个语法错误或者我只是愚蠢,我不确定会出现什么问题。任何帮助将不胜感激提前感谢。
$uslog = cure($_COOKIE['userloggedin']);
$ushas = cure($_COOKIE['uservalue']);
function cure($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
$query = "SELECT friends FROM `memberHandler` WHERE `username`='$uslog' AND `hash`='$ushas'";
$result = mysqli_query($connect, $query);
if(mysqli_num_rows($result) != 1){
die("Could not find user match");
}
答案 0 :(得分:0)
您需要对查询更加安全,并且应该使用基于PDO的查询的绑定变量。您还需要使用以下变量 - 使用连接和双引号:
$query = "SELECT friends FROM `memberHandler` WHERE `username`=' " . $uslog . " ' AND `hash`=' " . $ushas . " ' ";
如果您使用的是绑定参数,那么它将是:
$query = "SELECT friends FROM `memberHandler` WHERE `username`=:uslog AND `hash`= :ushas ";
然后你将绑定的变量绑定为(注意由于op不使用PDO而没有其他代码部分)
$query -> bindValue(":uslog " , $uslog , PDO::PARAM_STR);
$query -> bindValue(":ushas" , $ushas, PDO::PARAM_STR);