준비된 문: 식별자와 키워드를 처리할 수 있나요?
동적 쿼리는 변수를 활용하여 테이블, 필드 및 검색 값을 지정합니다. 쿼리에 변수를 연결하는 것이 성공적인 것으로 입증되었지만 PDO의 binParam() 또는 binValue()를 사용하여 변수를 바인딩하면 빈 배열이 생성됩니다.
작동하지 않는 이유:
PDO 준비된 문은 데이터 리터럴에 대한 자리 표시자만 허용합니다. 자리 표시자를 사용하여 식별자(테이블 또는 필드 이름) 또는 키워드를 나타내려고 하면 작동하지 않습니다.
해결책:
식별자: 식별자를 나타내는 변수를 포함하려면 다음을 따르세요. 규칙:
키워드:
예제 코드:
// Safely format identifier $field = "`" . str_replace("`", "``", $field) . "`"; $sql = "SELECT * FROM t ORDER BY $field"; // Whitelist keyword $dir = $_GET['dir'] == 'DESC' ? 'DESC' : 'ASC'; $sql = "SELECT * FROM t ORDER BY field $dir";
위 내용은 준비된 문이 데이터베이스 식별자와 키워드를 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!