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