【发布时间】:2013-09-04 16:45:55
【问题描述】:
我想知道是否需要在 PDO 中转义 $_POST 和/或 $_GET 数组? (面向对象)
例子:
<?php $name = $_POST['name']; ?>
我应该怎么做才能防止“SQL 注入”?谢谢。
【问题讨论】:
-
如果你准备好了,你就不需要逃跑了。只需要
isset。
标签: php pdo http-post http-get
我想知道是否需要在 PDO 中转义 $_POST 和/或 $_GET 数组? (面向对象)
例子:
<?php $name = $_POST['name']; ?>
我应该怎么做才能防止“SQL 注入”?谢谢。
【问题讨论】:
isset。
标签: php pdo http-post http-get
双号
如何防止“SQL注入”
进入 SQL 查询的每个变量都只能通过占位符添加,无论它来自 POST、GET 还是 ATM 电汇。
【讨论】:
如果你使用 pdo,你可以使用 prepare 语句
这里有很好的例子:
http://php.net/manual/en/pdo.prepare.php
PDO 会在查询之前为您转义值(使用 prepare 语句),因此您不必担心。
【讨论】:
您应该使用准备好的语句。 PDO 不仅为您转义了这些值,而且还使查询字符串看起来更好看,并且更便于以后的维护。
$sql = 'SELECT * FROM users WHERE id=?';
$dbh->execute(array("@p1", $_GET['blah']));
当我需要 PDO 方面的帮助时,我会使用哈希 PHP,它们更容易理解。
【讨论】: