方法一:
$stmt = $pdo->prepare('SELECT name FROM users WHERE id = :id');
$id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
方法二:
$stmt = $db->prepare('SELECT name FROM users WHERE id = :id');
$stmt->execute(array(':id' => $_POST['myform-userid'])); // Any vulnerability here?
$row = $stmt->fetch(PDO::FETCH_ASSOC);
方法 1 是否比方法 2 有任何显着优势?我知道当您需要使用不同的参数值再次运行查询并且您还可以指定数据类型时,bindParam 很有帮助。但是有什么强有力的理由将我的方法 2 重写为方法 1?可能有很多地方可能会分散此类查询,因此想知道是否值得麻烦。谢谢