我的select PHP函数不能正常工作

我的select PHP函数不能正常工作,php,mysql,web-services,Php,Mysql,Web Services,我创建一个WebService,我调用一个函数来确认用户,但是每次调用这个函数,我收到“注册确认”消息,即使我发送了错误的代码,这里是我的函数实现,考虑cKy是不变的,不可变的,每个用户都可以改变代码。我认为问题在于mysql指令 // RPC method 2 (confirm user) function confuser($ckey, $vercode) { $db = mysql_connect("localhost","root"); if(!$db){

我创建一个WebService,我调用一个函数来确认用户,但是每次调用这个函数,我收到“注册确认”消息,即使我发送了错误的代码,这里是我的函数实现,考虑cKy是不变的,不可变的,每个用户都可以改变代码。我认为问题在于mysql指令

// RPC method 2 (confirm user)
 function confuser($ckey, $vercode) {
    $db = mysql_connect("localhost","root");
     if(!$db){
      return 'Error: cannot open the connection';
      exit;
    }

     mysql_select_db('user_info');
      $query = "select * from personal where vercode='".$vercode."' and ckey='".$ckey."' ";
        $result = mysql_query($query, $db);
         if($result){
             return 'registration confirmed';
             } 
             else{
                 return 'wrong verification , send it again!';
             }
 }
mysql\u query()
将在任何成功的查询中返回结果句柄。这包括返回零行的查询。零行结果仍然是有效的结果,只是碰巧没有任何内容。对于零行查询,您不会得到“false”返回

您需要检查找到的行数,例如

$result = mysql_query(...);
if (!$result) {
   die(mysql_error()); // in case something did blow up
}
if (mysql_num_rows($result) == 0) {
    ... wrong verification ...
}

请注意,您需要保护变量$vercode和$ckey。mysql\u real\u escape\u string()曾经是转义方法,但现在mysql\u real\u escape\u string()和您使用的大多数函数在启动PHP5.5.0时都将被弃用。或者,您可以使用

您可以使用类似以下内容:

if(mysql_num_rows($result) > 0){
    return 'registration confirmed';
} 
else{
    return 'wrong verification , send it again!';
}

使用
mysql\u num\u rows
查看是否有行,您将使用@vivek sharma的答案$如果成功执行,结果将始终返回true。计算返回的行数是检查给定信息是否存在的最佳方法。
if(mysql_num_rows($result) > 0){
    return 'registration confirmed';
} 
else{
    return 'wrong verification , send it again!';
}