给出错误布尔值

时间:2017-03-20 08:29:00

标签: php mysql

警告:mysqli_num_rows()要求参数1为mysqli_result,第21行的E:\ LICENTA \ Xampp \ htdocs \ licentaCC \ login.php中给出布尔值

$

<?php 
 session_start();
 require_once('connect.php');
 }

 if(isset($_POST) & !empty($_POST)){ 
$username = mysqli_real_escape_string($connection, $_POST['username']);      
$password = md5($_POST['password']); 
$sql = "SELECT * FORM `login` WHERE";        
if(filter_var($username, FILTER_VALIDATE_EMAIL)){ 
 $sql .= "email='$username'"; 
}else{ 
 $sql .= "username='$username'"; } 
 $sql .= " AND password='$password' AND active=1"; 
 $sql; 
 $res = mysqli_query($connection, $sql); 
 **$count = mysqli_num_rows($res);

  if($count == 1){** 
  $_SESSION['username'] = $username; 
  header('location: login.php'); 
  }else{ $fmsg = "User does not exist"; } } 
 ?>

2 个答案:

答案 0 :(得分:0)

正如您所看到的,您没有在语句的各个部分之间放置任何空格,因此在连接SQL字符串后的最终结果如下所示:

WHEREemail='username'

WHEREusername='username'

这不是一个有效的陈述。你看到了问题吗?

答案 1 :(得分:-1)

这里有一些建议。

显示你的connect.php代码(没有密码),因为它可能包含有用的信息。

不要将变量直接注入SQL字符串,使用参数绑定::这里的好例子http://php.net/manual/en/mysqli-stmt.bind-param.php