2014-01-14 3 views
5
$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 매개 변수를 위생해야합니까?바인딩없이 PDO 사용

나는 $stmt->bindParam(':user_id', $_GET['user_id'], PDO::PARAM_INT);보다 문제가 없다는 것을 알고 있습니다. 그러나 내 길은 안전한가요?

답변

9

예, 안전합니다. executebind* 사이의 유일한 차이점은 다음과 같습니다 당신이 bind*

  • bind* 당신이 매개 변수 유형을 지정할 수 있습니다 개별적으로 각 사람에게있는 동안

    • execute는, 한 번에 여러 개의 매개 변수를 허용, execute 문자열
    • 등 모든 것을 결합하면서

    매개 변수를 execute으로 전달하는 것이 대부분의 편의상 단축형이며, 여전히 안전합니다.