0

我对在 mysql 中的搜索有一些问题。以下是我的查询。

SELECT * FROM table WHERE name LIKE "%admin\'s%";

当我执行此查询时,它将返回零数据。

实际上我有“管理员”存储在数据库中。这个“\”是为了防止sql注入。我曾经用来mysql_real_escape_string防止sql注入。

但是当我对我的变量使用三倍的 addlashes 时,它可以工作。

所以我下面的查询正在工作。

SELECT * FROM table WHERE name LIKE "%admin\\\\\\\'s%";

我上面的查询将返回名称如管理员的数据。

我没有得到我错的地方。

4

1 回答 1

1

对于一个你不应该在你的数据库管理员中拥有这样的数据的人来说。很可能你双重转义了你的字符串(检查你的服务器上是否启用了magic_quotes)。

如果你只做

INSERT ... username = "admin\'s";

您将在您的数据库中拥有用户名值 admin's 所以我的建议是继续从您的数据库中删除斜杠,然后您的第一个查询应该可以工作。

于 2010-01-20T10:52:11.363 回答