$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
– это, в основном, сокращение удобства, оно по-прежнему безопасно.