$stmt = $conn->prepare('SELECT * FROM users WHERE user_id = :user_id'); $stmt->execute(array(':user_id' => $_GET['user_id'])); $result = $stmt->fetchAll(PDO::FETCH_OBJ);
Я так использую PDO, мне нужно дезинфицировать параметр GET?
Я знаю, если я делаю $stmt->bindParam(':user_id', $_GET['user_id'], PDO::PARAM_INT); чем это не проблема. Но мой путь безопасен?
Да, это безопасно. Единственные различия между execute и bind* :
execute принимает сразу несколько параметров, тогда как вы должны bind* каждый по отдельности bind* позволяет указать тип параметра, а execute связывает все как строки Передача параметров для execute – это, в основном, сокращение удобства, оно по-прежнему безопасно.