Prepared 문이 포함된 MySQL의 LIMIT 키워드
LIMIT 키워드가 포함된 준비된 문을 실행하려고 할 때 다음과 같은 경우 오류가 발생할 수 있습니다. PDO(PHP Data Objects) 라이브러리를 사용하고 있습니다. 이는 PDO가 모든 매개변수를 문자열로 처리하므로 LIMIT 인수에 숫자 값을 사용할 때 구문 분석 오류가 발생할 수 있기 때문입니다.
이 문제를 해결하려면 다음 옵션을 고려할 수 있습니다.
1. 매개변수를 하나씩 바인딩:
각 매개변수를 적절한 유형으로 수동으로 바인딩하여 LIMIT 인수가 정수로 처리되도록 할 수 있습니다:
$comments->bindParam(1, $post, PDO::PARAM_STR); $comments->bindParam(2, $min, PDO::PARAM_INT); $comments->bindParam(3, $min, PDO::PARAM_INT);
2. 준비된 문 비활성화:
또 다른 옵션은 에뮬레이트된 준비를 비활성화하는 것입니다. 이 경우 인수가 인용될 수 있습니다:
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
3. LIMIT 값을 전달하지 마십시오:
LIMIT 값을 매개변수로 전달하는 대신 쿼리 문자열에 직접 포함할 수 있습니다.
$query = sprintf('SELECT id, content, date FROM comment WHERE post = ? ORDER BY date DESC LIMIT %d, %d', $min, $max);
에뮬레이트된 준비 사용을 피함으로써 또는 매개변수 유형을 명시적으로 설정하면 MySQL에서 LIMIT 키워드를 사용하여 준비된 명령문을 성공적으로 실행할 수 있습니다.
위 내용은 PDO에서 MySQL 준비 문과 함께 LIMIT를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!