Php 无法从我的mysql数据库中选择
我正在尝试访问一个在我的数据库上加密的密码,但是我一直遇到这个错误,我不知道如何修复它,我对php很陌生,所以:p 下面是错误消息:警告:mysqli_num_rows()期望参数1是mysqli_结果,布尔值在第18行的C:\wamp\BSP\login.php中给出 感谢您的帮助!:) PHP代码:Php 无法从我的mysql数据库中选择,php,mysql,Php,Mysql,我正在尝试访问一个在我的数据库上加密的密码,但是我一直遇到这个错误,我不知道如何修复它,我对php很陌生,所以:p 下面是错误消息:警告:mysqli_num_rows()期望参数1是mysqli_结果,布尔值在第18行的C:\wamp\BSP\login.php中给出 感谢您的帮助!:) PHP代码: <?php include('connection.php'); session_start(); function cryptPsw($input, $roun
<?php
include('connection.php');
session_start();
function cryptPsw($input, $rounds = 9) {
$salt = "";
$saltChars = array_merge(range('A','Z'), range('a','z'), range(0,9));
for($i = 0; $i < 22; $i++) {
$salt .= $saltChars[array_rand($saltChars)];
}
return crypt($input, sprintf('$2y$%02d$', $rounds) .$salt);
}
$username = $_POST['username'];
$password = $_POST['password'];
$uname = mysqli_query($con, 'SELECT ´username´ FROM ´users´ WHERE ´username´ = "$username"');
if(mysqli_num_rows($uname) == 0) {
echo '<script>console.log("Username not found!")</script>';
}
else {
$psw = mysqli_query($con, 'SELECT ´password´ FROM ´users´ WHERE ´username´ = "$username"');
$hashedPsw = cryptPsw($psw);
if(crypt($password, $hashedPsw) == $hashedPsw) {
echo '<script>console.log("You are now logged in")</script>';
}
else {
echo '<script>console.log("Wrong password, try again!")</script>';
}
}
?>
尝试如下使用,即删除前面的勾号'
使用反勾号或保持原样,如果您使用了任何保留字或关键字,在这种情况下,您可以使用反勾号
'SELECT username FROM users WHERE username = "$username" '
而不是
'SELECT ´username´ FROM ´users´ WHERE ´username´ = "$username"'
顺便说一句,我使用的是河豚算法。你的蜱虫走错了方向,你可以在这里查看网站:草莓有——你引用的字段名不正确。它们应该是反勾号:`,而不是像您使用的那样
'。如果您在查询中有最小的错误处理,而不是盲目地假设成功,您就会看到mysql错误消息。或者完全忽略!
'SELECT ´username´ FROM ´users´ WHERE ´username´ = "$username"'