>  기사  >  백엔드 개발  >  준비된 문의 바인딩 매개변수 번호 불일치를 해결하는 방법은 무엇입니까?

준비된 문의 바인딩 매개변수 번호 불일치를 해결하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-22 11:02:29807검색

How to Resolve Binding Parameter Number Mismatch in Prepared Statements?

"bind_param 변수 수가 준비된 문의 매개변수 수와 일치하지 않습니다."

제공된 코드 조각에서 발생한 경고는 Bind_param() 메소드의 변수 수와 준비된 명령문의 매개변수 수입니다. 이 문제를 해결하려면 이 두 숫자가 일치하는지 확인하는 것이 중요합니다.

처음에 사용한 준비된 명령문:

$stmt = $mysqli->prepare("SELECT DISTINCT model FROM vehicle_types 
    WHERE year = ? AND make = '?' ORDER by model");

에 오류가 있습니다. make 매개변수의 자리 표시자가 따옴표('?')로 잘못 묶여 있습니다. 준비된 문에서 자리 표시자는 따옴표 없이 물음표로 표시되어야 합니다.

수정된 준비된 문:

$stmt = $mysqli->prepare("
    SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = ? ORDER by model
");

이제 bin_param() 메서드의 두 변수와 일치하는 두 개의 자리 표시자가 있습니다.

$stmt->bind_param('is', $year, $make);

make 자리 표시자 주위의 잘못된 따옴표를 제거하면 변수와 매개변수의 수를 정렬하여 불일치 오류를 해결할 수 있습니다.

위 내용은 준비된 문의 바인딩 매개변수 번호 불일치를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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