pdo用空格替换+


pdo replacing + with space

我正在使用Laravel 5,并试图在数据库的字符串字段中插入一封带有+符号的电子邮件。

不幸的是,+正在被解码到数据库中的一个空间。我跟踪了代码,并确定它是正在将值更改为空格的pdo。

代码看起来像:

$bindings = $me->prepareBindings($bindings);
return $me->getPdo()->prepare($query)->execute($bindings);

如果我在两个语句之间打印$bindings数组,则电子邮件为:email => email+test@email.com。然而,当我查看数据库时,它显示:email test@email.com

我的主要问题是,我如何才能避免拉拉威尔的这种情况?或者更具体地说,如何避免使用pdo?

我错了。PDO没有对它进行消毒。前端正在对它进行净化,所以它与Laravel或PDO无关。它是jquery,这意味着我只是浪费了一个小时,因为我在调试时没有采取额外的一步。经验教训。

在前端,我使用这个ajax调用:

$.ajax({
      url: "/customers/"+$("#Id").val(),
      data:data,
      type: "PUT",
      success: function(html) {
          ...
      },
      error: function(response){
          ...
      }
  });

尝试通过在+符号前面添加反斜杠来转义+符号。

email'+test@email.com