>백엔드 개발 >PHP 튜토리얼 >준비된 명령문에서 변수와 매개변수 간의 불일치를 해결하는 방법은 무엇입니까?

준비된 명령문에서 변수와 매개변수 간의 불일치를 해결하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-22 12:19:03268검색

How to Resolve Discrepancy Between Variables and Parameters in Prepared Statements?

bind_param: 준비된 문의 변수와 매개변수 간 불일치

코드 조각에서 오류가 발생했습니다. "변수 개수가 숫자와 일치하지 않습니다. 준비된 문의 매개변수입니다." 이는 bin_param() 함수의 변수와 준비된 문의 자리 표시자(?)가 일치하지 않음을 나타냅니다.

이 문제를 해결하려면 준비된 문이 모든 변수를 물음표로 정확하게 대체하는지 확인하세요. 아래 수정된 코드에서 볼 수 있듯이 물음표 주위의 따옴표를 제거합니다.

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

물음표 수는 항상 바인딩_param()에 전달된 변수 수와 일치해야 합니다. 원래 코드에는 두 개의 변수($year, $make)가 있었지만 준비된 명령문에는 물음표가 하나만 있어 오류가 발생했습니다.

또한 변수의 데이터 유형이 데이터와 일치하는지 확인하세요. 데이터베이스 열의 유형. 예를 들어 데이터베이스의 연도 열이 정수인 경우 바인딩하기 전에 $year를 정수로 캐스팅해야 합니다.

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

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