phpmyadmin中的错误虽然在PHP脚本中运行良好

时间:2010-07-30 19:37:38

标签: php sql mysql phpmyadmin mysql-error-1064

好的,所以这个很奇怪,我想我的SQL查询一定有问题,但我没有看到它有什么问题。发生的事情是我有一个脚本,我在php脚本中运行,检索用户已注册的所有类别以及有多少其他人注册了同一类别。当我在php页面中运行查询时,它非常慢,但确实返回结果。我想看看发生了什么,所以我去phpmyadmin运行相同的脚本,它返回结果的计数非常快,但然后给我以下错误,通常会显示结果:

#1064 - You have an error in your SQL syntax; check the manual that corresponds
       to your MySQL server version for the right syntax to use near '' at line 1 

以下是查询:

SELECT t1.category_id, t3.description AS 'Category',
    t1.list_type_id, t2.name, t1.status_id, t2.user_id,
    t2.email, UNIX_TIMESTAMP( t1.record_date ) AS 'RecordDate',
    (
        SELECT COUNT( category_id ) 
        FROM t1_sub
        WHERE t1_sub = t1.job_ctg_id AND
            t1_sub.list_type_id = t1.list_type_id AND
            t1_sub.status_id =44
    ) AS 'MatchingListings'
FROM t1
INNER JOIN t2 ON t2.id_rfp_vendor_data = t1.user_id
INNER JOIN t3 ON t3.type_lookup_id = t1.job_ctg_id
WHERE t1.status_id =43

我不知所措。我的问题的原因实际上是两个方面:

  1. 我的查询实际上有什么问题我错过了吗?
  2. 如果没有,是错误mysql显示我的脚本运行缓慢的原因,并且php有一些解决方法吗? (虽然这似乎不太可能,我只能要求确定)
  3. 谢谢!

3 个答案:

答案 0 :(得分:1)

PHPMyAdmin冒充略微重写您的查询(例如,添加LIMIT 0,30子句仅显示前30行)。

您是否可以启用查询日志并查看服务器上实际执行的查询?

如果没有,请尝试从查询中删除元素,直到它确实有效。向我们展示查询。或者显示一些表定义?

答案 1 :(得分:0)

您的任何表格或列名称中是否有空格?如果是这样,请将它们包含在反引号中:

`table name`

答案 2 :(得分:0)

你应该做的是删除phpmyadmin并承诺永远不要再下载它。

然后启动命令行mysql提示符,并尝试相同的查询。这将告诉你查询是否真的很糟糕,或者phpmyadmin是否只是为了被误导作者的变态乐趣而诋毁它。