MySQL-带有符号“的数据”&&引用;

MySQL-带有符号“的数据”&&引用;,mysql,Mysql,我的MySQL表“categories”中有以下数据: 当我尝试从表中获取值时,它可以很好地使用下面的SQL SELECT * FROM `categories` WHERE `name` = 'Books & Cds'; 但是在PHP中使用时,它会给我一些SQL错误 SQLSTATE[42000]:语法错误或访问冲突:1064您有 SQL语法错误;检查与您的产品相对应的手册 在第5行的“”附近使用正确语法的MySQL服务器版本 我在哪里可以找到这方面的实际原因?如何调试?如果您想在P

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

当我尝试从表中获取值时,它可以很好地使用下面的SQL

SELECT * FROM `categories` WHERE `name` = 'Books & Cds';
但是在PHP中使用时,它会给我一些SQL错误

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


我在哪里可以找到这方面的实际原因?如何调试?

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

ID   code   name
1    BCDS   Books & CDs
2    DRS    Dress
然后,您的代码可以执行“where code='BCDS'”之类的操作,您可以将该类别称为“Books&cd”、“cd和Books”,或者您喜欢的任何其他类别


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

看看这个链接,也许这就是您的解决方案。你确定吗?我刚刚测试并成功了:你能展示你的php代码吗?我使用的是php框架,而不是普通的php。我是新来的。我还在学习它的工作原理。我看到这个问题被否决了。这意味着什么?否决票(不是我)是因为你没有完整地描述你的问题——正如其他人所说的,你需要包含php代码来生成给你语法错误的查询(问题可能在于如何在PHP中转义或引用内容,因为您引用的SQL查询没有任何问题)。抱歉,对我来说,这似乎不是一个可行且最简单的解决方案。短期来说,这不是最简单的,但从长远来看,你会很高兴你做到了。我无法告诉你我在修复查询中的错误上浪费了多少时间,因为在构建查询时,也使用了一些向用户显示的、因此需要更改的内容。
ID   code   name
1    BCDS   Books & CDs
2    DRS    Dress