确切的错误消息是:
您的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'");
如何确定导致问题的原因?或者这个问题完全不同了吗?
答案 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);