我有以下代码。
$query = "SELECT HealthStatus FROM healthstatus where HealthStatus=$HealthStatus";
$result = mysql_query($query);
echo $HealthStatus;
if($result = false)
{
//do something
}
else
{
//print value already exists
}
执行代码时,我没有收到任何错误或警告。但是,即使数据库中存在$ HealthStatus,if部分也会被执行。当我给echo $ HealthStatus时,正确打印获取的值。 我尝试过使用if(!$ result)。这也行不通。有人可以帮助我。
答案 0 :(得分:2)
您必须使用mysql_num_rows来了解查询是否返回任何行,例如: -
if($result && mysql_num_rows($result))
{
// a row exists
}
else
{
// do something
}
如果HealthStatus是一个字符串,它需要用引号括起来,例如: -
$query = "SELECT HealthStatus FROM healthstatus where HealthStatus='".$HealthStatus."'";
$result = mysql_query($query);
if($result && mysql_num_rows($result))
{
// a row exists
$row=mysql_fetch_array($result);
echo "Health status was ".$row["HealthStatus"];
}
else
{
// do something
echo "There were no rows found";
}
答案 1 :(得分:0)
要了解收到的行数,请使用mysql_num_rows
函数。
if(mysql_num_rows($result) > 0) {
} else {
}
此外,您的if
:
if($result = false)
{
//do something
}
else
{
//print value already exists
}
您在if
声明中为$ result指定了false。
您必须使用if($result == false)
。
为避免此类错误,您可以更改订单:
if(false == $result)
这会有效,但是这个:
if(false = $result)
会导致错误。
希望,这会有所帮助。