MySQL中的Escape%字符

时间:2012-01-23 11:31:53

标签: mysql

我正在尝试保存一个包含%等字符的字符,但问题是虽然其他字符如“/或”似乎工作正常,但我无法弄清楚如何逃避%。我尝试过很多东西,但是使用mysql_real_escape_string或其他东西都行不通。

目前,我正在用'百分比'替换%(它不能用反斜杠+%),将其保存到数据库,然后在回显之前将其替换回来,但正如您可能注意到的那样,它不是非常优秀。如果有更好的方法,请告诉我。

4 个答案:

答案 0 :(得分:1)

不要尝试将变量值与查询一致。使用占位符和值绑定。

答案 1 :(得分:1)

如果在php中,您需要在插入之前使用 addslashes 到百分比字符。 对于mysql:


'10\% off' //you need to escape % character

答案 2 :(得分:1)

MySQL在执行插入/更新时不会更改%字符。如果您遇到问题,它必须是您的设置中正在进行转换的其他图层。

create table test ( a varchar(10));
insert into test values ('abc%def');
select * from test;

+---------+
| a       |
+---------+
| abc%def | 
+---------+
1 row in set (0.00 sec)

答案 3 :(得分:0)

显然,%可以通过加倍来进行转义,所以非常简单str_replace为我做了。