php SQL select查询失败

时间:2016-12-19 15:11:17

标签: 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");
    }

1 个答案:

答案 0 :(得分:5)

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

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

$result = $mysqli->query($query);

manual中明确指出:

  

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

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

另外:

了解preparedMySQLi语句。即使escaping the string也不安全! Don't believe it?

永远不要存储纯文本密码!请使用PHP的built-in functions来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用password_hash() compatibility pack。在散列之前,请确保 don't escape passwords 或在其上使用任何其他清理机制。这样做更改密码并导致不必要的额外编码。