SQL SELECT命令的常见问题

时间:2017-05-26 17:22:53

标签: php mysql sql login

我想要登录,但会显示错误。我检查SQL的SELECT形式并尝试做同样的事情,但问题根本没有解决。如果有人帮助我,那将是非常好的,谢谢。数据库已经连接并准备使用。

这是错误:mysql_num_rows()期望参数1是资源,第14行的C:\ xampp \ htdocs \ UNIWIX \ login.php中给出布尔值

这是代码:

if(isset($_POST['submit'])){

    $email = mysql_escape_string($_POST['email']);
    $password = mysql_escape_string($_POST['password']);

    $sql = mysql_query("SELECT * FROM users WHERE email='$email' AND password = '$password' ");


if(mysql_num_rows($sql) > 0){          (line 14)

        echo "you are now logged in";
        exit();

    }else{

    echo 'wrong email or password';

}


}

1 个答案:

答案 0 :(得分:0)

"SELECT * FROM users WHERE email='$email' AND password = '$password' "

您知道吗,$ email和$ password是主字符串的一部分?如果您尝试运行此SQL,它可能会产生一些垃圾。

首先,你需要用单引号给出值,然后用双引号停止字符串,并用点连接它们。所以最后的字符串应该是:

"SELECT * FROM users WHERE email = '".$email."' AND password = '".$password."'"

所以它实际上连接了5个字符串,其中""标记每个的开始和结束。请不要"'"最后,因为PHP也应该给最后一个'到MySQL。