Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法从我的mysql数据库中选择_Php_Mysql - Fatal编程技术网

Php 无法从我的mysql数据库中选择

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很陌生,所以:p

下面是错误消息:警告:mysqli_num_rows()期望参数1是mysqli_结果,布尔值在第18行的C:\wamp\BSP\login.php中给出

感谢您的帮助!:)

PHP代码:

<?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"'