php - 检查变量是否设置/是真/存在

时间:2012-01-02 17:54:14

标签: php mysql variables if-statement

在我的代码中,我正在检查变量是否存在。但它并没有像我期望的那样发展。

这就是我要做的事情:

  1. 从数据库中检索$result
  2. 仅在提取结果时执行代码块(否则不执行任何操作/跳过/前进)。
  3. 我使用if(isset($result))但似乎没有工作,看起来正在执行if,即使在$ result中没有数据时也不应该这样做。 (但有问题,因为在此块中没有实际的$result变量)

5 个答案:

答案 0 :(得分:3)

if($result)不仅适合您吗?如果您有错误报告显示E_NOTICE,请尝试if(isset($result) && $result)

答案 1 :(得分:2)

根据您执行查询的方式,您可能会使用empty()代替isset()

来自文档:

  

isset
  确定变量是否已设置且不为NULL。

     

empty
  确定变量是否被视为空。

例如:

$var = '';

isset($var)将在设置时返回true,但empty($var)将返回false,因为其值为空字符串。

答案 2 :(得分:2)

Isset仅适用于非实例化变量。将$ result设置为db响应时,实际上是在设置变量。

您可以使用mysql_fetch_assoc(resource $ result)或mysql_fetch_array(resource $ result [,int $ result_type = MYSQL_BOTH]),具体取决于您要执行的操作。如果没有响应,这两个函数都将返回false。

http://www.php.net/manual/en/function.mysql-fetch-assoc.php http://www.php.net/manual/en/function.mysql-fetch-array.php

答案 3 :(得分:1)

如果您使用类似mysql_query的内容,它将返回资源,或者在出错时使用false。这意味着它将永远被设置。

答案 4 :(得分:1)

要检查是否有任何数据提取,请使用:

$connect = mysql_connect("127.0.0.1",$sql_username,$sql_password);
$data = mysql_query($sql_query,$connect);
$result = mysql_fetch_array($data);
if($result) { ... }