0

我在数据库中有一个 testField

testField = NULL

我跑了一个查询:

$query = mysql_query("SELECT testField FROM table");
$result = mysql_fetch_array($query);

我尝试了不同的方法来避免出错。但我仍然收到“未定义变量”错误。

  1. if(isset($result['testField'])){$testField = "OK"; echo $testField};
  2. if(!empty($result['testField'])){$testField = "OK"; echo $testField};
  3. if($result['testField']=='1'){$testField = "OK"; echo $testField};

请帮忙。谢谢!

4

5 回答 5

1

mysql_fetch_assoc 是您打算使用的功能。默认情况下,mysql_fetch_array 会给你一个这样的数组:

$结果[0] =空;

只需使用 mysql_fetch_assoc 就可以了。

调试时的一个好技巧是键入 print_r($result); 看看你得到什么输出。

于 2011-07-03T20:17:49.483 回答
0

您在 if 正文中使用 $testField 和 $testfield ,它们被视为不同的变量......

注意一个有大写 F 一个有小写 f !

好的,正如您现在所说,只有示例有这个问题,而不是您的原始代码。

尝试将 if 拆分为多行以获得产生错误的实际行

例如

if(isset($result['testField'])){
  $testField = "OK";
  echo $testField
};

此外,您可能希望在 if 语句之前使用var_dump输出 $result 以确认查询已为您提供响应(显然再次从生产代码中删除!)。

于 2011-07-03T20:16:20.650 回答
0

你得到一个错误,因为 PHP 是区分大小写的。 $testField不是同一个变量$testfield

于 2011-07-03T20:16:25.133 回答
0

PHP 中的变量名区分大小写。问题是$testField = "OK"; echo $testfield;

用。。。来代替:

$testField = "OK"; echo $testField;

参考:http ://php.net/manual/en/language.variables.basics.php :

于 2011-07-03T20:16:29.450 回答
0

变量名区分大小写,因此:

$testField != $testfield

因此,为什么您会收到变量未定义错误。

于 2011-07-03T20:16:35.360 回答