MySQL에서 준비된 문이 있는 LIMIT 키워드
이 질문은 준비된 문을 사용할 때 LIMIT 절이 예상대로 작동하지 않는 문제를 해결합니다. MySQL의 PDO 라이브러리를 사용합니다.
제공된 코드에서 snippet:
<pre class="brush:php;toolbar:false"> $comments = $db->prepare($query); /* where $db is the PDO object */ $comments->execute(array($post, $min, $max));
$min 및 $max 매개변수는 PDOStatement::execute 메소드에 의해 문자열로 처리됩니다. 결과적으로 최종 SQL 문은 다음과 같습니다.
LIMIT '0', '10'
MySQL은 LIMIT 절에 숫자 값을 요구하기 때문에 구문 오류가 발생합니다.
가능한 해결 방법:
이 문제를 해결하려면 다음 사항을 고려하세요. 옵션:
매개변수 수동 바인딩:
문자열 보간 사용:
예:
$query = sprintf('SELECT id, content, date FROM comment WHERE post = ? ORDER BY date DESC LIMIT %d, %d', $min, $max);
에뮬레이트 준비 비활성화:
참고:
이러한 방법을 사용하면 준비된 문과 함께 LIMIT 절을 올바르게 사용할 수 있습니다.
위 내용은 LIMIT가 MySQL의 준비된 명령문에서 작동하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!