准备好的语句使用占位符来插入值.您的问题中的代码段已经将值插入到查询中,因此容易进行SQL注入.
以下伪代码突出显示准备好的语句:
$stmt = $conn->prepare('SELECT * FROM `table` WHERE `id` = ?');
$stmt->execute($_POST['id']);
Run Code Online (Sandbox Code Playgroud)
在这个例子中,这个"代码"背后的逻辑将负责正确引用任何内容$_POST['id']并用该代替问号?.您可能还会遇到以下占位符:
$stmt = $conn->prepare('SELECT * FROM `table` WHERE `id` = :id');
$stmt->execute(array(
'id' => $_POST['id']
));
Run Code Online (Sandbox Code Playgroud)
但是请注意,该预处理语句不免除您的你的责任将其传递到(我的)SQL语句之前验证用户提供的输入:如果id预期是一个整数,只接受整数作为输入.
| 归档时间: |
|
| 查看次数: |
592 次 |
| 最近记录: |