我无法弄清楚为什么我的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");
}
答案 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或程序)。
另外:
了解prepared的MySQLi语句。即使escaping the string也不安全! Don't believe it?
永远不要存储纯文本密码!请使用PHP的built-in functions来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用password_hash()
compatibility pack。在散列之前,请确保 don't escape passwords 或在其上使用任何其他清理机制。这样做更改密码并导致不必要的额外编码。