PHP MYSQL错误 - “您的SQL语法中有错误;请检查...以便在附近使用正确的语法

时间:2010-09-16 05:46:06

标签: php mysql

确切的错误消息是:

  

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在第1行'where rfflag ='0'附近使用正确的语法

您好,

我正在尝试让一些PHP脚本正常工作,它会因上述错误消息而死亡。在SQL查询中有两个使用rfflag的位置:

$_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'");

如何确定导致问题的原因?或者这个问题完全不同了吗?

4 个答案:

答案 0 :(得分: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 :(得分:1)

  

如何确定导致问题的原因?

删除其中一个查询。看看它是否仍然存在。

在次要思想上,我建议您更改MySQL查询代码,以便它不使用die()打印出错误消息。使用trigger_error或者异常,这样你就会自动获得导致它的行的痕迹。

答案 2 :(得分:0)

  

如何确定导致问题的原因?

使用trigger_error()输出错误信息 我猜(我必须猜测,因为你没有提供代码)你正在使用die()来输出错误 如果您将此不良练习功能更改为trigger_error(),您将能够看到发生错误的行号。
如果你只将mysql_error()添加到它的输出中,而且还要查询自己,你也可以看到问题代码。

答案 3 :(得分: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);