Mysqli_stmt::bind_result() 오류: 바인딩 불일치
준비된 명령문을 사용하여 PHP 로그인 양식을 구현하려고 하면 사용자에게 다음과 같은 문제가 발생할 수 있습니다. 다음 오류:
mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statement
이 오류는 Bind_result()에 지정된 변수 수와 준비된 명령문에서 반환된 필드 수입니다. 이 문제를 해결하려면 다음 코드 조각을 검사하십시오.
$mysqli = new mysqli("localhost", "root", "", "security"); $stmt = $mysqli->prepare("SELECT username AND password FROM users WHERE username = ?"); $username = $_POST['name']; $stmt->bind_param('s', $username); $stmt->execute(); $stmt->bind_result($password, $username); $stmt->fetch();
근본 원인:
SELECT 문의 잘못된 구문이 오류의 근본 원인입니다. 올바른 구문은 다음과 같습니다.
SELECT username, password FROM users WHERE username = ?
해결 방법:
SELECT 문의 필드를 "AND" 대신 쉼표로 구분하면 문제를 해결할 수 있습니다. " 올바른 코드는 다음과 같습니다.
$mysqli->prepare("SELECT username, password FROM users WHERE username = ?");
SELECT 문의 올바른 구문을 확인하고 바인드 변수의 수가 준비된 문의 필드 수와 일치하는지 관찰하면 mysqli_stmt::bind_result() 오류가 발생합니다. 예방할 수 있습니다.
위 내용은 `mysqli_stmt::bind_result()`가 PHP 로그인 양식에서 '바인딩 불일치' 오류를 발생시키는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!