>백엔드 개발 >PHP 튜토리얼 >PDO 준비된 문은 명명된 자리 표시자를 재사용할 수 있습니까?

PDO 준비된 문은 명명된 자리 표시자를 재사용할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-27 13:30:12593검색

Can PDO Prepared Statements Reuse Named Placeholders?

PDO 준비된 문: 명명된 자리 표시자 재사용

PDO 작업 시 준비된 SQL 쿼리에서 명명된 자리 표시자를 재사용하는 것이 바람직할 수 있습니다. 그러나 이는 PHP의 PDO::prepare 함수의 제한으로 인해 불가능합니다.

PDO 문서에 따르면 "준비된 문에서 동일한 이름의 명명된 매개 변수 표시를 두 번 사용할 수 없습니다." 이는 다음과 같이 쿼리에서 동일한 이름의 자리 표시자를 여러 번 사용하려고 시도하는 경우 두 번째로 나타나는 ":Param" 자리 표시자가 고유한 자리 표시자로 대체됨을 의미합니다. PDO::prepare 함수로 이름을 지정합니다. PDO::bindValue(":Param")를 사용하여 값을 ":Param" 자리 표시자에 바인딩하면 첫 번째 자리 표시자에 대한 값만 설정됩니다. 두 번째 발생은 바인딩되지 않은 상태로 유지되어 쿼리를 실행할 때 오류가 발생합니다.

SELECT :Param FROM Table WHERE Column = :Param
따라서 PDO를 사용하여 준비된 SQL 쿼리에서 명명된 자리 표시자를 재사용할 수 없습니다. 쿼리에서 동일한 값을 여러 번 반복해야 하는 경우 위치 자리 표시자(예: "?", ":1" 등)를 사용하거나 다른 자리 표시자 이름을 사용하여 준비된 여러 문을 만들 수 있습니다.

위 내용은 PDO 준비된 문은 명명된 자리 표시자를 재사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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