首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引发SQL语法错误的简单查询

引发SQL语法错误的简单查询
EN

Stack Overflow用户
提问于 2010-02-22 12:50:14
回答 3查看 974关注 0票数 3

我有一个简单的SQL查询,它一直抛出一个SQL语法错误。看起来是这样的:

代码语言:javascript
复制
$sql = "SELECT COUNT(*) AS TOTAL FROM PRODUCT WHERE ID_PRODUCT = ".$id;
$result = mysql_query($sql) or die(mysql_error()); 

抛出:

您的SQL语法有错误;请检查与MySQL服务器版本对应的手册,以获得在第1行“ID_PRODUCT =1”附近使用的正确语法。

我不明白怎么回事。当然,如果我在phpMyAdmin中直接尝试查询,它的工作就没有问题。

它返回与SELECT *完全相同的错误。

编辑:ID_PRODUCT是一个外键..。

Update:在用$sql字符串WHERE ID_PRODUCT = 2中的静态值替换$id变量以及用引号保护名称时,也会出现相同的错误。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-22 13:18:55

试着用手完全重新输入$sql,您可能会意外地在其中有一个不可见的扩展字符(例如,一个不间断的空间,而不是一个常规的空间,等等)。

票数 2
EN

Stack Overflow用户

发布于 2010-02-22 12:54:22

如果ID_PRODUCT列是varchar,则需要在where子句的值周围放置单引号。可能是这样的,如果没有关于您的模式的信息,就无法判断。

更新:不确定。显然,下一步是打印生成的SQL并尝试手动运行它,希望问题会出现,并且您将能够排除PHP作为问题的来源。

票数 3
EN

Stack Overflow用户

发布于 2010-02-22 13:07:01

尝试引用您的表、列和标识符名称。考虑到案件的敏感性。表、列或标识符不要使用全大写名称。

编辑:主要是为了可读性,但也可能防止与保留关键字的冲突。

我的想法是:

SELECT COUNT(*) AS "total" FROM "Product" WHERE "id_Product" = 1

请注意,默认情况下,MySQL使用非标准回勾字符(`)引用这些字符。(虽然它们没有出现在这里,所以我也可以使用双引号。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2310914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档