当我回音时:
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/

10-10 22:50