bindParam과 BindValue의 차이점 이해
질문:
근본적인 차이점은 무엇인가요? PDOStatement::bindParam()과 PDOStatement::bindValue()?
답변:
PDOStatement::bindParam 수동 항목에 따르면 주요 차이점은 두 메서드의 참조 동작에 있습니다. BindParam은 변수를 참조로 바인딩하는 반면, BindValue는 변수 값을 바인딩합니다. 이 참조 동작은 PDOStatement::execute() 실행 중에 작동합니다.
bindParam 예:
다음 코드를 고려하세요.
$sex = 'male'; $s = $dbh->prepare('SELECT name FROM students WHERE sex = :sex'); $s->bindParam(':sex', $sex); // bind the variable using bindParam $sex = 'female'; $s->execute(); // execute with WHERE sex = 'female'
여기에서 binParam은 $sex를 참조로 바인딩합니다. 문이 실행되면 'female'로 변경된 $sex의 현재 값을 참조합니다. 따라서 쿼리는 '여학생'에 대한 결과를 검색합니다.
bindValue 예:
이제 findValue를 사용하여 유사한 예를 살펴보겠습니다.
$sex = 'male'; $s = $dbh->prepare('SELECT name FROM students WHERE sex = :sex'); $s->bindValue(':sex', $sex); // bind the variable's value using bindValue $sex = 'female'; $s->execute(); // execute with WHERE sex = 'male'
이 경우, BindValue는 바인딩 당시의 $sex 값인 'male'을 바인딩합니다. 따라서 나중에 $sex 값이 변경되더라도 쿼리는 항상 '남학생'에 대한 결과를 검색합니다. 이는 BindValue의 비참조 동작을 보여줍니다.
위 내용은 BindParam 대 BindValue: PHP PDO의 주요 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!