[英]PHP & MySQL: How do I compare the user input to data in the database?
我有一个 HTML 表单,其中包含一个输入用户名的文本框和一个登录按钮。 当用户按下登录按钮时,我希望查询数据库,如果有匹配则回显一条语句。 我的代码是这样的:
<form class="login_box" method="POST">
<input id="input-boxes1" type="text" name="username" value="" placeholder="Username">
<input id="button-1" type="submit" name="login" value="Login">
</form>
// Checks if login button is pressed
if (isset($_POST['login'])) {
$enteredUser = $_POST['username'];
$sql = "SELECT * FROM user WHERE username='$enteredUser'";
if ($result = mysqli_query($link, $sql)) {
echo 'it works';
}
}
我想要它做的是在匹配时回显“它有效”。 然而,无论如何它总是呼应它。 数据库按我添加到它的预期工作并在其他文件中从中选择,并且数据库也正确链接到此表单。
任何帮助都会很棒,谢谢!
感谢@El_Vanja 和@droopsnoot 的帮助。 我现在设法找出解决方案。 正如他们正确指出的那样,我必须查看返回的行数是否为 1,如果是,则回显该语句。
我修改后的代码如下:
if (isset($_POST['login'])) {
$enteredUser = $_POST['username'];
$sql = "SELECT * FROM user WHERE username='$enteredUser'";
$result = mysqli_query($link, $sql);
if (mysqli_num_rows($result) == 1) {
echo 'it works';
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.