我正在尝试在名为test2的表上运行select语句。这是一个非常简单的用户名和密码列表。我不明白如何访问查询的结果。我希望能够检查通过POST表单发送的用户名和密码是否与我的test2表中的用户名和密码相匹配。现在我只是想让查询工作并打印出结果。我从这里的文档http://php.net/manual/en/mysqli-stmt.get-result.php
获得了大部分代码 $link = mysqli_connect(HOST,USERNAME,PASSWORD,DBNAME) or die ("Connect Error" . mysqli_error($link));
$query = "SELECT username, password FROM test2 where username =? AND password =?";
$stmt = mysqli_stmt_init($link);
if(!mysqli_stmt_prepare($stmt, $query))
{
print "Failed to prepare statement\n";
}
else{
mysqli_stmt_bind_param($stmt,"ss", $_POST['user'], $_POST['pw']);
mysqli_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$numRows = $result->mysqli_num_rows;
if ($numRows == 1){
echo "User exists";
}else{
echo "No users";
}
}
mysqli_close($stmt);
mysqli_close($link);
答案 0 :(得分:0)
对于那个查询,你需要知道的是,是否返回了任何行,而不是行对象的值。
所以,你可以做......
$numRows = $result->mysqli_num_rows;
if ($numRows == 1){
echo "User exists";
}else{
echo "No users";
}
然后你可以从那里处理它的用途。
但是,如果您确实要对用户进行身份验证,那么您的查询应该是......
SELECT ID from test2 WHERE username=? AND password=?
然后在准备好的陈述中传递POST的密码。