我正在尝试保存一个包含%等字符的字符,但问题是虽然其他字符如“/或”似乎工作正常,但我无法弄清楚如何逃避%。我尝试过很多东西,但是使用mysql_real_escape_string或其他东西都行不通。
目前,我正在用'百分比'替换%(它不能用反斜杠+%),将其保存到数据库,然后在回显之前将其替换回来,但正如您可能注意到的那样,它不是非常优秀。如果有更好的方法,请告诉我。
答案 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
为我做了。