[英]PHP $result = mysql_query($query) returns true even if there is no value in database
我有以下代碼。
$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)。 這也行不通。 有人能幫我嗎。
您必須使用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";
}
要了解接收了多少行,請使用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)
會導致錯誤。
希望,這會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.