mysql_query返回非null数组

时间:2012-09-18 14:47:31

标签: php mysql sql wamp

我正在执行以下查询:

    if (isset ($_POST['valider']) ){
            $password=$_POST['password'];
            $login=$_POST['login'];


  $sql ='SELECT * FROM artisant WHERE pseudo="'.$login.'" AND password="'.$password.'"';
  echo $sql;


            $req = mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
            $nbr = count($req);
            echo $nbr;
            if(empty($req)){
            echo " <p>Incorrecte user name or password ! </p> ";
            }
            else {
            while ($data = mysql_fetch_array($req)) {
            $_SESSION['num']=$req['num'];
            $_SESSION['prenom']=$req['prenom'];
                        $_SESSION['nom']=$req['nom'];
                        $_SESSION['mail']=$req['mail'];
            $_SESSION['nbr_ventes']=$req['nbr_ventes'];
            $_SESSION['CA']=$req['CA'];
            }

            mysql_close();

            }


}

并且我传递给查询的登录名和密码不正确(它们在数据库中不存在)但是返回的结果是非空数组(查询后的req大小为1)并且到期它进入while循环,除非找到相应的登录名和密码,否则它不应该进入。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

$req是资源,而不是行。

$nbr = count($req);毫无意义,请改用mysql_num_rows

$nbr = mysql_num_rows($req);
if ($nbr == 0) {