警告mysql_num_rows()期望参数1是资源,布尔值是给定的

时间:2016-02-07 09:05:34

标签: php mysql

define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "testing");
 $con = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE) or die('Unable to Connect');'

    if (!(empty($_POST)) & isset($_POST)){

$unq_email = mysql_query("select * from `users` where `email`='".$_POST['email']."'");

if(mysql_num_rows($unq_email)!=0){  

  $sql = "insert into `users` (`name`,`email`,`password`,`gcm_id`) values `('".$_POST['name']."', '".$_POST['email']."', '".$_POST['password']."',` '".$_POST['gcm_id']."')";'

        if(mysql_query($sql)){
            $id=1;
            $msg="You are registered";
        }else{
            $id=0;
            $msg="Something went wrong";
        }

    }else{


 mysql_query("UPDATE users SET gcm_id='$_POST[gcm_id]' WHERE email='$_POST[email]'");
                $id=2;
                $msg="email already exists";
        }
        $response['result'] = 

array($result = array('response' => $id,'message'=>$msg));
        die(json_encode($response));

    }
    ?>`'

json中的上述代码正在以正确的结果回复我,但如果我的sql查询错误则会发出警告,那么它是如何以正确的结果还原我的。请帮忙

2 个答案:

答案 0 :(得分:0)

如果您已经解决了语法错误,那么您可能会收到此错误,因为之前的语句mysql_query未返回资源。查询失败并返回一个FALSE值,这是一个布尔值,并且您在mysql_num_rows()函数中传递该布尔值而不是资源。

首先使用此代码检查mysql_query中的错误。

mysql_query("select * from `users` where `email`='".$_POST['email']."'") or die(mysql_error());

答案 1 :(得分:0)

使用mysql_*来电 混合mysqli_*来电。 完全使用mysql_*来电!

使用mysqli_* API调用正确编码后,您的问题就会消失。