2014-04-29 69 views
0

这对我工作得很好我的旧服务器上,但我已搬迁到新的服务器与最新版本的PHP的,我收到以下错误未定义常量

注意:使用未定义的常量COMPANY_NAME的 - 假设“ company_name'in

如何在下面的代码中将结果定义为常量?

$q1 = mysql_query("SELECT company_name FROM company"); 
print "<ul class='mktree'>"; //open list1 
while($nt=mysql_fetch_array($q1)){ 
print "<li><span>Company - $nt[company_name]</span></li>"; 
$comp = $nt[company_name]; 
+0

在更新代码时,请删除'mysql_ *'函数。这些现在已被弃用,并将从PHP的更高版本中删除,从而导致更多麻烦。你会想看看MySQLi或PDO。 – BenM

回答

2

你应该引用您的阵列keys.So

$nt[company_name]必须$nt['company_name']

当你不需要使用引号将查找名为COMPANY_NAME常量。当它没有找到这样的常量时,PHP(奇怪)将它解释为一个字符串('company_name')。显然,如果稍后定义了这样一个常量,这很容易中断(尽管使用小写常量是不好的方式)。

0

您必须引用索引名称。

$nt['company_name'] 

company_name将是一个未定义的常量,和PHP将假定该值为'company_name',然后触发的通知。

0

您在print $nt[company_name]错过了报价和$comp = $nt[company_name];

print "<li><span>Company - $nt['company_name']</span></li>"; 
$comp = $nt[company_name]; 

也可以尝试,如果你想呼应$值NT [COMPANY_NAME],你必须要追加像值:

print "<li><span>Company - ".$nt['company_name']."</span></li>";