当我回音时:
mysqli_real_escape_string($dbc,“conn”e“cting”);
它在我的远程和本地服务器上都输出:“conn”“e”“cting”
这就是它应该的样子,但问题是,它正在将[“conn”e“cting”]保存到本地数据库中的数据库,而将[“conn”e“cting”]保存到远程数据库中的反斜杠。我应该配置远程数据库吗?怎样?我用的是几乎免费的Peech服务。
谢谢!
最佳答案
您的遥控器已启用magic quotes。
你可以通过运行…
var_dump(get_magic_quotes_gpc()); // True means it is enabled
它将自动转义所有get、post和cookie超级全局变量,但再次转义将留下一个斜线,将被插入。
在服务器上禁用magic quotes,或者在不可能禁用magic quotes时使用magic quotes disabler函数。
更新
该死的,这是我刚编的
if (get_magic_quotes_gpc()) {
function stripSlashesRecursive($array) {
$stripped = array();
foreach($array as $key => $member) {
if (is_array($member)) {
$stripped[stripslashes($key)] = stripSlashesRecursive($member);
} else {
$stripped[stripslashes($key)] = stripslashes($member);
}
}
return $stripped;
}
$globals = array('_GET', '_POST', '_COOKIE', '_REQUEST');
foreach($globals as $global) {
$$global = stripSlashesRecursive($$global);
}
}
It works!
关于php - 如何使用mysqli_real_escape_string()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4420294/