变量名错误


Strange php error with a variable name

这对我来说是个大难题。

我有这样一行代码:

$Fields = mysql_fetch_assoc($Result);

然后我这样调用它:

<?php echo $Fields['BusinessName']; ?>

奇怪的是,没有错误,但没有数据显示。但是,当我将变量$Fields重命名为$Field时,数据显示:

对于本地测试,我使用Ubuntu,错误首先在主机(LAMP)上被注意到。

我检查了$Fields是否在PHP中是保留字,但我似乎找不到任何提示。

感谢对此的任何投入。谢谢!

下面是有效的代码:
$strQuery = "SELECT * FROM tblAds WHERE AdRef = '{$ThisAd}' LIMIT 1 ";
$Result = mysql_query($strQuery);
$Field = mysql_fetch_assoc($Result);

现在在html主体区域,我插入echo语句,就像前面提到的那样,它工作了。

但是当我将其更改为$Fields时,没有错误,也没有输出。当我说没有输出时,字段内容显示为空白。但是页面继续加载,没有数据。

对于那些好奇的人来说,有一个关于已经声明的会话变量的错误警报,但这是不相关的

PHP中没有魔法。

如果其中一个变量不工作-这只是一个愚蠢的打字错误。

error_erporting(E_ALL); 转过来,就像你已经被告知的那样,从你的PHP那里得到帮助来发现这个错字。
这是所有的

如果您仍然无法发现它- 至少提供一个完整的,可复制的代码,让每个人都运行它,看看哪里出错了。


看,你必须发布代码,而不是它冗长的描述。

对于包含"But the moment I change variable name, something went wrong"的问题

只有可能的答案是"there is some mistake"。你不明白吗?不可能给这个模糊的问题一个肯定的答案!

  • 现在在html正文区域,

为什么在HTML正文区域?为什么不在合适的地方?这些地方之间有多少代码?这个变量覆盖的可能性有多少?
为什么不直接在这段代码中添加一行,立即回显变量呢?

try this:

$Fields = mysql_fetch_assoc($Result);
foreach($Fields as $field){
   echo $field['BusinessName'];
}

当然你不能回显数组,因为$Fields是一个数组。

您可以尝试调用var_dump($var)函数来显示包含在变量$Fields$Field或任何其他中的数据。

在php.net上查找一些使用mysql_fetch_assoc()的工作示例也会有所帮助。

您之前已经声明并初始化了$Field

$Fields是一个多维数组,它看起来像这样:

$Fields[0]['BusinessName'];

它有多个"BusinessName",因此变量实际上是由一堆整数键填充的,这些键随后与您的字段相关联,包括"BusinessName"。