Php 检查MYSQL以查看条目是否已经存在,而没有if-else

Php 检查MYSQL以查看条目是否已经存在,而没有if-else,php,mysql,Php,Mysql,您好,我有一个包含多个if-else statemet的长代码页,我想做的是检查一个数据库,看看该Ip地址是否已经在表中 目前我是这样做的 $result = mysql_query("SELECT * FROM masterip_details WHERE ip_address='$ip_address' AND client_id='$client_id'") or die(mysql_error()); $num_rows = mysql_num_rows($re

您好,我有一个包含多个if-else statemet的长代码页,我想做的是检查一个数据库,看看该Ip地址是否已经在表中

目前我是这样做的

     $result = mysql_query("SELECT * FROM masterip_details WHERE    ip_address='$ip_address' AND client_id='$client_id'") or die(mysql_error());
     $num_rows = mysql_num_rows($result);
    //IF THE RESULT IS MORE THAN 0, THIS MEANS THAT THEY ARE A RETURNING VISITOR
    if( $num_rows > 0 ) {
         /// Add returning Script here  

    }  else {
        //Add code

         }
是否有一种方法可以在不使用if-else语句的情况下执行此操作?例如,如果记录在数据库中,则只返回值1


谢谢,如果您有任何建议,我们将不胜感激。

您可以使用
count
获取具有该值的行数

$result = mysql_query("SELECT count(*) FROM masterip_details WHERE    ip_address='$ip_address' AND client_id='$client_id'") or die(mysql_error());

return $result > 0;  //returns a boolean

这样,如果数据库中不存在该值,您将得到一个
0
,如果存在,则得到一个大于0的数字

使用MySQL上的
选择是否存在

SELECT IF( EXISTS(
             SELECT *
             FROM  masterip_details
             WHERE `ip_address`=? AND `client_id`=?), 1, 0)

您是否仍然需要一个
if
语句来读取
1
返回($num\u rows>0)
将向调用者返回true或false您可以在一条语句中执行此操作,但当它从
mysql\u查询中抛出错误时会导致问题
请选择
COUNT()
。除非
ip\u address
在数据库中是唯一的,否则您可能会不必要地获取大量行。另外,请注意,ip地址会不时更改,因此在查找返回客户时,这不是可靠的选项。如果这是一个愚蠢的问题,那么很抱歉,但是如何将结果值捕获为变量?