집 >데이터 베이스 >MySQL 튜토리얼 >내 MySQL 준비 명령문이 \'유형 정의 문자열의 요소 수가 바인드 변수 수와 일치하지 않습니다\' 오류와 함께 실패하는 이유는 무엇입니까?
일치하지 않는 바인드 변수의 미스터리
이 질문은 광범위한 MySQL 준비 명령문에 대한 매개변수를 바인딩할 때 발생하는 오류를 중심으로 진행됩니다. 문제는 바인딩_param 메서드의 "s" 유형 표시기 수와 쿼리 문자열의 물음표(?) 수 사이의 불일치로 인해 발생합니다.
bind_param() 이해
bind_param()은 준비된 쿼리의 물음표(?)를 실제 데이터로 대체하는 mysqli 메소드입니다. 유형 정의 문자열의 각 문자(예: 문자열의 경우 "s")는 물음표 및 바인딩할 데이터에 해당합니다.
바인드 변수 수 일치
기억해야 할 중요한 점은 유형 정의 문자열(예: "s,s,s")의 문자 수가 물음표 수와 정확하게 일치해야 한다는 것입니다. (?) 쿼리 문자열에 있습니다. 예를 들어, 3개의 물음표가 있는 쿼리에는 3개의 "s" 문자가 포함된 유형 정의 문자열이 필요합니다.
코드 검토
주어진 PHP 코드에서 쿼리는 문자열에는 65개의 물음표가 포함되어 있지만, Bind_param() 메서드는 "s,s,s,s,s,s,s,s"(총 8개의 "s")를 사용합니다. 문자). 이러한 불일치로 인해 "유형 정의 문자열의 요소 수가 바인드 변수의 수와 일치하지 않습니다."
문제를 해결하려면:
문제를 해결하려면, Bind_param() 메서드의 "s" 문자 수가 쿼리 문자열의 물음표(?) 수와 일치하는지 확인하세요. 이 경우,bind_param() 메소드는 다음으로 대체되어야 합니다:
$stmt->bind_param("sssssssssssssssssssssssssssssssssssssssssssssssssssssssssss", ...);
추가 참고 사항:
위 내용은 내 MySQL 준비 명령문이 \'유형 정의 문자열의 요소 수가 바인드 변수 수와 일치하지 않습니다\' 오류와 함께 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!