php SQL select查询失败

Maj*_*olm 0 php mysql

我无法弄清楚为什么我的SQL选择查询一直失败 - 我是SQL的新手所以它可能是一个愚蠢的错误,但我无法在文档中找到答案.非常感谢提前

       // connect to db
    $mysqli = new mysqli("127.0.0.1", "maok08ab", "", "Portfolio");
    if ($mysqli->connect_errno) 
    {
        echo "Failed to connect to MySQL";
    }

    $username=$_POST["username"];
    $email=$_POST["email"];
    $hash=$_POST["password"];

    $query = "SELECT * FROM users WHERE username = '$username'";


    $result= mysqli_query($mysqli, $query);

    if ($result == FALSE)
    {
        apologize("something went wrong");
    }
Run Code Online (Sandbox Code Playgroud)

Jay*_*ard 5

由于您正在使用OOP连接,因此必须使用OOP来执行查询:

$query = "SELECT * FROM users WHERE username = '$username'";

$result = $mysqli->query($query);
Run Code Online (Sandbox Code Playgroud)

它在手册中非常清楚地说明:

链接过程样式:mysqli_connect()或mysqli_init()返回的链接标识符

所以你的使用$result= mysqli_query($mysqli, $query);不会像你想象的那样奏效.确保在代码的整个生命周期中坚持使用一种方法(OOP或程序).


此外:

了解MySQLi的预准备语句.即使逃避字符串也不安全!不相信吗?

永远不要存储纯文本密码!请使用PHP的内置函数来处理密码安全性.如果您使用的PHP版本低于5.5,则可以使用password_hash() 兼容包.在散列之前,请确保不要转义密码或使用任何其他清理机制.这样做会更改密码并导致不必要的额外编码.