这对我来说是个大难题。
我有一行代码如下:
$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时,没有错误,也没有输出。当我说没有输出时,字段内容显示为空白。但是页面继续加载而没有数据。
只是对于好奇的人,有一个关于已经声明的会话变量的错误警告,但这不相关。
我希望这很清楚。
答案 0 :(得分:1)
PHP中没有神奇之处。
如果其中一个变量不起作用 - 那就是一个愚蠢的错字。
正如您已经被告知的那样, 转向error_erporting(E_ALL);
,以便从您的PHP中获取帮助以发现错字。
这都是
如果你仍然无法发现它 - 至少提供一个完整的,可重现的代码,让每个人都运行它,看看有什么问题。
再次。
看,你必须发布代码,而不是它的罗嗦描述。
问题包括"But the moment I change variable name, something went wrong"
唯一可能的答案是“有一些错误”。你不明白吗? 不可能对模糊的问题给出一定的答案!
- 现在在html正文区域,
为什么在HTML体区?为什么不到位?这些地方之间有多少代码?这个变量有多少种可能被覆盖? 为什么不在这段代码中添加一行,回显您的变量立即?
答案 1 :(得分:0)
试试这个:
$Fields = mysql_fetch_assoc($Result);
foreach($Fields as $field){
echo $field['BusinessName'];
}
当然你不能回应数组,因为$ Fields是一个数组。你应该预先知道
答案 2 :(得分:0)
您可以尝试拨打var_dump($var)
功能,以显示变量$Fields
或$Field
或其他任何内容中包含的数据。
在php.net上查找一些使用mysql_fetch_assoc()
的工作示例也很有帮助。
答案 3 :(得分:-1)
您之前已声明并初始化了$Field
。
$Fields
是一个多维数组,如下所示:
$Fields[0]['BusinessName'];
它有多个“BusinessName”,因此变量实际上填充了一堆整数键,然后与您的字段相关联,包括“BusinessName”。