这个MySQL语句注入是否安全?

时间:2017-06-30 10:47:38

标签: php mysql pdo

自从我做了任何MySQL以来,它一直是AGES,而且我已经学习了一些关于PDO的知识。我只是想知道这是否是正确的做事方式?

提前致谢!

$sql = 'SELECT `something`,`somethingelse` FROM here WHERE id = \'' . $_REQUEST["id"] . '\'';
$stmt = $db->prepare($sql);
$stmt->execute();

1 个答案:

答案 0 :(得分:4)

不,永远不要将变量直接添加到查询字符串中。这是安全的方法。这看起来像是一个PDO查询,所以这里是如何将值替换为pdo查询

$sql = 'SELECT `something`, `somethingelse` FROM here WHERE id = ?';
$stmt = $db->prepare($sql);
$stmt->execute(array($_REQUEST["id"] ));

或者您可以进一步缩短它,从而节省时间:

$stmt->execute([$_REQUEST['id']])

您可以在此处阅读有关如何运行查询的更多信息https://yomotherboard.com/sql-prepared-statements-using-php-pdo-queres/