pdo用空格替换+

时间:2015-11-24 23:08:03

标签: php pdo laravel-5

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

不幸的是,+被解码到数据库中的空间。我跟踪代码并将其识别为pdo,将值更改为空格。

代码如下:

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

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

我的广泛问题是如何通过Laravel避免这种情况?或者更具体地说,如何使用pdo避免它?

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:-1)

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

email\+test@email.com