用PDO php在mysql中插入&符号(&)?

时间:2012-02-10 06:13:30

标签: php mysql pdo sql-injection

我正在使用PDO将值插入mysql

我正在做这样的事情

$sql = $db->prepare("INSERT INTO table(value) VALUES(?)");
$sql -> execute(array($value));

我注意到如果我在输入字段中键入文本&,它将被删除以插入mysql。我想这很好,因为它表明mysql注入受到保护?那么如果我想将此值作为文本,例如:beer & wine

,该怎么办?

有关该怎么做的任何建议?

1 个答案:

答案 0 :(得分:1)

  

我想这很好

这显然是不好的。无法存储某些符号的数据库是无稽之谈。想象一下,在这个网站上使用了一个。 您根本无法提出问题!

  

它表明mysql注入受到保护?

它没有显示任何内容。 &符号与注射无关,正如我上面所说,去除符号与注射保护无关。

  

它被删除以插入mysql。

没有。就像你看到它一样。您看到不在数据库中,但在其他地方。那是你的问题。

插入前检查您的数据。
检查数据库。找到你的&符号未触及。
然后跟踪您的数据流,找到丢失&符号的位置。
然后问一个问题。