-1

我的 MySQL 表“类别”中有以下数据:

id    Name
-----------------
1     Books & CDs
2     Dress

当我尝试从表中获取值时,它适用于以下 SQL。

SELECT * FROM `categories` WHERE `name` = 'Books & Cds';

但是在 PHP 中使用时,它给了我一些 SQL 错误。

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 5 行的 '' 附近使用正确的语法

我在哪里可以找到这个的真正原因?如何调试这个?

4

1 回答 1

0

如果您想在 PHP 代码中搜索 Category 表中的行,我建议您在表中添加一列以供代码使用,而不是搜索您用于最终用户的名称。您面临的潜在问题是,如果您想更改类别的名称,您必须在代码中找到您按名称引用该类别的所有位置并更改它。但如果你的桌子看起来像这样:

ID   code   name
1    BCDS   Books & CDs
2    DRS    Dress

那么您的代码可以执行诸如“where code = 'BCDS'”之类的操作,并且您可以将该类别称为“Books & CDs”、“CDs and Books”或您喜欢的任何其他内容。

现在,就解决语法问题而言,您必须发布用于生成失败查询的 PHP。正如另一位海报所说,您可能错误地转义了某些内容,而 MySQL 没有得到您认为正在得到的查询。

于 2013-02-18T14:57:22.147 回答