这对我来说是个大难题。
我有这样一行代码:
$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"。