mysqli :: real_escape_string的对应部分?

时间:2009-01-24 01:23:52

标签: php mysql mysqli

stripslashes()?那是蹩脚的,所以4.0。剥离为SQL查询添加的所有斜杠的mysqli :: real_escape_string的5.0对应部分是什么?

还有其他一些问题:

  1. 尝试更新记录并在文本字段中添加单引号,结果phpMyAdmin用单引号而不是斜线转义字符串 - 例如单引号转义为''(2个单引号)而不是'' - phpMyAdmin使用的是什么功能,还是它自己的?那么,mysql支持两种转义字符串的方法,即斜杠和单引号?

  2. 我是否总是要取消从mysql中选择的字符串?因为'你知道它在插入时被削减了。但我认为我没有。

  3. 任何想法,谢谢!

3 个答案:

答案 0 :(得分:3)

使用PDO代替任何mysql[i] / pgsql / ...扩展程序。

如果您只是想要扭转魔法引号所造成的伤害,stripslashes()正是您正在寻找的。

答案 1 :(得分:3)

如果你不想使用PDO,并且你正在使用mysqli,那么你应该使用预准备语句,所以你不必担心使用mysql_real_escape_string_i_mean_it_this_time之类的东西来转义引号。

更具体地说,您可以致电mysqli->prepare来准备您的查询。调用mysqli_stmt->bind_param设置参数值。并且,调用mysqli_stmt->execute来执行查询。

答案 2 :(得分:1)

ini_set('magic_quotes_runtime', false);