Php 检查MYSQL以查看条目是否已经存在,而没有if-else
您好,我有一个包含多个if-else statemet的长代码页,我想做的是检查一个数据库,看看该Ip地址是否已经在表中 目前我是这样做的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
$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地址会不时更改,因此在查找返回客户时,这不是可靠的选项。如果这是一个愚蠢的问题,那么很抱歉,但是如何将结果值捕获为变量?