簡體   English   中英

即使數據庫中沒有值,PHP $ result = mysql_query($ query)也會返回true

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM