thinkphp에는 전처리가 있습니다. "ThinkPHP3.1" 버전에는 조건부 문자열 전처리에 대한 지원이 추가되어 ORM 보안이 더욱 안전해졌습니다. 방법: 1. 문자열 조건을 전처리하려면 where 메서드를 사용합니다. 2. 기본 SQL 쿼리 메서드를 전처리하려면 쿼리 및 실행 메서드를 사용합니다.
이 문서의 운영 환경: Windows 10 시스템, ThinkPHP 버전 5, Dell G3 컴퓨터.
thinkphp에 전처리가 있나요?
이전 버전의 ThinkPHP 3.0에서는 배열 쿼리 조건에 대해 보안 필터링을 수행합니다. (이는 3.0에서 필드 유형 감지를 필수로 사용하기 때문입니다. 이므로 배열 모드의 쿼리 조건은 필드의 설정 유형으로 강제 변환되지만 버전 3.0은 문자열 조건의 안전한 필터링을 지원하지 않습니다. ThinkPHP 3.1 버전에는 조건부 문자열 전처리에 대한 지원이 추가되어 ORM의 보안이 더욱 보장됩니다.
1. where 메소드 사용
Model 클래스의 where 메소드는 문자열 조건 전처리를 지원합니다. 사용:
$Model->where("id=%d and username='%s' and xx='%f'",array($id,$username,$xx))->select();
또는 직접 사용:
$Model->where("id=%d and username='%s' and xx='%f'",$id,$username,$xx)->select();
$id 변수가 사용자 제출 또는 URL 주소에서 오는 경우, 전달된 경우 입력이 숫자가 아닌 유형인 경우 숫자 형식으로 포맷된 다음 쿼리 작업이 수행됩니다.
문자열 전처리 형식 유형은 숫자, 문자열 등 지정을 지원합니다. 자세한 내용은 vsprintf 메서드의 매개변수 설명을 참조하세요.
2. 쿼리 및 실행 메서드 사용
where 조건 외에도 기본 SQL 쿼리 메서드는 전처리 메커니즘도 지원합니다. 예:
$Model->query("SELECT * FROM think_user WHERE id=%d and username='%s' and xx='%f'",array($id,$username,$xx));
모델의 실행 메서드도 쿼리와 같은 전처리 메커니즘을 지원합니다. 방법.
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 thinkphp에 전처리가 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!