方法1:
$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();
方法2:
$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?可能有很多地方可能会分散这些查询,所以想知道是否值得这么麻烦。感谢