2014-04-29 68 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>";