3

有人可以帮我弄清楚我在 SELECT 语句中做错了什么吗?

SELECT *
FROM group
WHERE login = 'admin'

我的错误是:

在第 1 行的 'group WHERE login = 'admin'' 附近使用正确的语法

它应该会失败,但是因为管理员不在数据库中,但是当我插入数据库中的数据时,它仍然会失败。

4

2 回答 2

11

GROUP是保留关键字。您需要使用 back 对其进行转义以避免语法错误。

SELECT * FROM `group` WHERE login = '$username'

如果您有权更改表名,请将其更改为不是保留关键字,以避免将来再次出现语法错误。:D


作为旁注,SQL Injection如果变量的值(s)来自外部,则查询很容易受到攻击。请看下面的文章,了解如何预防。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。

于 2013-04-15T07:14:05.153 回答
3

GROUP是mysqlreserverd keyword所以可以用,放在backstick中间

`group`

文档在这里

于 2013-04-15T07:14:18.483 回答