我想知道我是否需要在PDO中转义$ _POST和/或$ _GET数组? (OOP)
示例:
<?php $name = $_POST['name']; ?>
我应该怎么做才能防止“SQL注入”?感谢。
答案 0 :(得分:1)
如果你使用pdo,你可以使用准备声明
这里有很好的例子:
http://php.net/manual/en/pdo.prepare.php
PDO将在查询之前为您提供值(使用prepare语句),因此您不必担心这一点。
答案 1 :(得分:1)
双重否。
我该怎么做才能阻止“SQL注入”
进入SQL查询的每个变量都应该只通过占位符添加,无论它来自POST,GET还是ATM电汇。
答案 2 :(得分:0)
您应该使用准备好的陈述。 PDO不仅为您逃避了这些值,而且还使查询字符串看起来更加漂亮,并且以后更容易进行维护。
$sql = 'SELECT * FROM users WHERE id=?';
$dbh->execute(array("@p1", $_GET['blah']));
当我需要PDO帮助时,我使用哈希PHP,它们更容易理解。