2010-09-16 116 views
0

確切的錯誤消息,使用方法是:PHP MYSQL錯誤 - 「您的SQL語法錯誤;正確的語法檢查......近

您的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近「其中rfflag =」 0「」在1號線

嗨,

我試圖得到一些PHP腳本的工作和正確的語法手冊它隨着上面的錯誤消息而死亡。在這裏有兩個地方使用rfflag e SQL查詢:

$_SESSION['lang']=$objTerm->my_get_one("select min(id) from " 
    .$objTerm->TABLE['languages']." where status='1' and rfflag='0'"); 

$rs_lang=$objTerm->execute_query("select id,language from " 
    .$objTerm->TABLE['languages']." where `status`='1' and `rfflag`='0'"); 

如何確定哪一個導致問題?或者是其他問題呢?

+0

你肯定'rfflag'沒有在另一個查詢的地方使用了100%? – 2010-09-16 06:42:29

回答

2

回聲這一點:

"select id,language from ".$objTerm->TABLE['languages']." where status='1' and rfflag='0'" 

這:

"select min(id) from ".$objTerm->TABLE['languages']." where status='1' and rfflag='0'" 

然後運行在你最喜歡的SQL開發工具執行每個輸出。 錯誤將顯示在那裏。

1

如何判斷哪一個導致問題?

刪除其中一個查詢。看看它是否仍然發生。

在次要思想上,我建議你改變你的MySQL查詢代碼,以免它使用die()來輸出錯誤信息。相反,使用trigger_error或異常,這樣您將自動獲得哪條線路導致它的痕跡。

0

如何確定哪一個導致問題?

使用trigger_error()輸出錯誤消息。
我猜(我必須猜測,因爲你不提供代碼),你正在使用die()來輸出一個錯誤。
如果您將此不良練習功能更改爲trigger_error(),您將能夠看到發生錯誤的行號。
如果添加非唯一mysql_error(),以它的輸出,而且查詢本身,你將能夠看到問題的代碼了。

0

我猜$objTerm->TABLE['languages']未定義或沒有你期待的價值。

As sheeks06 has already suggested,只是呼應了查詢,看是否如預期的一切:

$query = "select min(id) from " 
    .$objTerm->TABLE['languages']." where status='1' and rfflag='0'"; 
echo $query; 
$_SESSION['lang']=$objTerm->my_get_one($query); 

$query = "select id,language from " 
    .$objTerm->TABLE['languages']." where `status`='1' and `rfflag`='0'"; 
echo $query; 
$rs_lang=$objTerm->execute_query($query); 
相關問題