>백엔드 개발 >PHP 튜토리얼 >PDO에서 MySQL 준비 문과 함께 LIMIT를 사용하는 방법은 무엇입니까?

PDO에서 MySQL 준비 문과 함께 LIMIT를 사용하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-30 16:37:10228검색

How to Use LIMIT with MySQL Prepared Statements in PDO?

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

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