我正在尝试在名为 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);
最佳答案
对于您在那里的查询,您需要知道的是是否返回了任何行,而不是行对象的值。
所以,你可以这样做......
$numRows = $result->mysqli_num_rows;
if ($numRows == 1){
echo "User exists";
}else{
echo "No users";
}
然后您可以从那里处理如何处理它。
但是,如果您确实想对用户进行身份验证,您的查询应该是...
SELECT ID from test2 WHERE username=? AND password=?
然后也在您准备好的语句中传递来自 POST 的密码。
关于php - 使用 php 运行 MYSQL SELECT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40369821/