使用PHP 5.6和PDO是否需要转义字符?

时间:2016-04-17 20:25:47

标签: php mysql pdo

我使用PDO读取/输入MySQL数据以防止SQL注入

Dispatcher

在数据库中输入字符之前还是在浏览器中显示数据库中的数据之前,是否有任何原因我应该转义字符?恶意用户是否可以通过将JavaScript代码记录到我的数据库来利用我的网站或其他用户?

谢谢!

2 个答案:

答案 0 :(得分:2)

->prepare();方法以及bindParam()为您完成所有操作,因此无需执行任何其他操作。

当你将一个param绑定到预准备的语句变量时,它会将原始数据放入,而不是像以前那样将它添加到查询中! :)

答案 1 :(得分:2)

你当然不应该逃避为绑定参数传递的参数。

根本没有逃脱现象。它是SQL引擎,它使用占位符编译语句,并在以后单独接收参数值,未转义。 SQL引擎能够组合编译语句(此时不再有SQL字符串)和参数值,以确保SQL注入的整个问题变得无关紧要。

转移为绑定占位符传递的值会产生负面影响。 SQL引擎确实需要这些值,如果它们以某种方式被转义,引擎将不会忽略它们,而是从字面上理解它们。