>백엔드 개발 >PHP 튜토리얼 >BindParam 대 BindValue: PHP PDO의 주요 차이점은 무엇입니까?

BindParam 대 BindValue: PHP PDO의 주요 차이점은 무엇입니까?

DDD
DDD원래의
2024-12-18 16:04:24215검색

bindParam vs. bindValue: What's the Key Difference in PHP's PDO?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.