PHP if语句mysqli_num_rows不起作用


PHP if Statement mysqli_num_rows not working

我有一个代码,它询问数据库中是否存在一行,如果存在,它将回显一条消息。然而,无论我输入什么,都不会有任何响应

这是我的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Untitled Document</title>
</head>
<body>
  <?php
    $mysqlhost="host";
    $mysqldatabase="b33_15887129_Accounts";
    $mysqlusername="username";
    $mysqlpassword="password";
    $connect=new mysqli($mysqlhost,$mysqlusername,$mysqlpassword);
    if (!$connect) {
      die("Connection failed: " . $connect->connect_error);
    }
    echo "Connected Successfully";
    mysqli_select_db($connect,"b33_15887129_Accounts");
    $loginusername=$_POST['loginusername'];
    $loginpassword=$_POST['loginpassword'];
    $checkifexist="SELECT * FROM Users WHERE Username='$loginusername' AND 'Password=$loginpassword'";
    $runquery=mysqli_query($connect,$checkifexist);
    $numofrows=mysqli_num_rows($runquery);
    if($numofrows==1){
      echo "Successfully logged in!";
    }else{
      echo "Failed to log in";
    }
  ?>
</body>
</html>

它设法回显Connected successfully,但无论输入什么,Successfully logged inFailed to log in都不会出现。有什么帮助吗?

您的"登录失败"没有显示,因为您忘记了echo。

if($numofrows==1){
    echo "Successfully logged in!";
}
else{
    echo "Failed to log in";
}

为了让sql正常工作,@Ranjith是正确的,您需要更改sql语句中的引号位置。

1)您的else语句没有回音!!!

2) 您的SQL语句错误!检查密码处的引号!-->密码='$loginpassword'

事实上你应该看看http://php.net/manual/en/mysqli.real-escape-string.php.