【发布时间】:2011-03-23 10:24:07
【问题描述】:
好的,所以这个很奇怪,我认为我的 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
我很茫然。我提出问题的原因实际上有两个:
- 我的查询实际上是否有问题而我丢失了?
- 如果不是,错误 mysql 是否显示了我的脚本运行缓慢的原因,并且 php 有一些解决方法? (尽管这似乎不太可能,但我只需要确定一下即可)
谢谢!
【问题讨论】:
-
Mmmmm... 你可以尝试用反引号
`替换引号'吗? (或者完全删除它们,或者) -
+1:在标签中包含 MySQL 错误 # - 谢谢!
-
@Pekka 让我试一试,看看会发生什么。 @OMG是的,当有人发布问题并说他们对某些事情有错误而实际上并没有给您错误时,我讨厌它。就像您是一些疯狂的读心者,只需查看代码就可以猜出他们遇到的错误。我的意思是我确信这是可能的,但大多数时候它不是。吐槽完了。 :P
-
@Pekka 不喜欢反引号或删除它们。仍然给我上面提到的同样的错误。
-
这里是一个随机的.. 删除您的别名周围的引号作为 AS。仅供参考,'as' 关键字是可选的。
标签: php sql mysql phpmyadmin mysql-error-1064