我已经很久没有做过任何MySQL了,我对PDO也有了一些了解。我只是想知道这是不是正确的做事方式?
提前谢谢!
$sql = 'SELECT `something`,`somethingelse` FROM here WHERE id = \'' . $_REQUEST["id"] . '\'';
$stmt = $db->prepare($sql);
$stmt->execute();
最佳答案
不,不要将变量直接添加到查询字符串中。这是安全的方法。这看起来像一个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/
关于php - 该MySQL语句注入(inject)安全吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44844659/