使用GROUP BY时MySQL 4.0.18语法错误

时间:2010-01-13 19:37:41

标签: php mysql

我有一个在PHP和MySQL上运行的项目管理网站。但我不是开发它的人,这使我更难弄清楚问题是什么。所以我转向堆栈溢出。

当我尝试对对象列表进行排序时,MySQL服务器向我抛出异常,说:

  

“您的SQL语法有错误。请查看与您的MySQL服务器版本对应的手册,以便在第10行的'GROUP BY company_id'附近使用正确的语法。”

所以我在整个源代码中搜索了“GROUP BY company_id”,并发现了一次,第一次没有出现在第10行,第二次,我没有看到任何错误。< / p>

该行看起来像:

$sql .= " GROUP BY company_id
          ORDER BY $orderby";

$rows = db_loadList( $sql );

我尝试过研究这个主题,但找不到具体的内容。 我知道这些信息真的不够,但我只是想知道什么可能导致这个问题,如果你们之前有过这样的话。

任何形式的输入都将不胜感激。 谢谢,

维拉德

2 个答案:

答案 0 :(得分:0)

如果我必须预测问题,我猜测$orderby是空的或无效的。或者,在您显示的片段之前还有一些其他GROUP BY子句(或ORDER BY或HAVING)子句。

打印SQL - 整个声明。

如果问题不明显,请将其添加到您的问题中。

答案 1 :(得分:0)

所以我发现了问题。它实际上不是一个SQL问题。问题是由构建请求字符串的方式引起的。我意识到在请求字符串的开头有两个问号而不是一个(即“??”)。这导致SQL服务器出于某种原因抱怨语法。但无论如何,谢谢大家的努力。

祝你好运,

维拉德