>백엔드 개발 >PHP 튜토리얼 >'정의되지 않은 메서드 mysqli_stmt::get_result() 호출' 오류가 발생하는 이유는 무엇입니까?

'정의되지 않은 메서드 mysqli_stmt::get_result() 호출' 오류가 발생하는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-26 10:42:15610검색

Why am I getting a

"mysqli_stmt::get_result()" 메서드 호출이 정의되지 않은 문제

"mysqli_stmt"에서 "get_result()" 메서드를 사용하려고 하는 중 개체에서 쿼리 결과를 얻으면 "정의되지 않은 메서드 호출"이 나타납니다. mysqli_stmt::get_result()" 오류.

문제 원인:

오류는 "mysqli_stmt" 개체에 "get_result()" 메서드를 사용할 수 없음을 나타냅니다. 이는 "mysqlnd" 드라이버가 없기 때문에 발생할 수 있습니다.

해결책:

  1. mysqlnd 드라이버 설치:

    이 드라이버는 " get_result"를 사용하는 데 유용합니다. ()" 방법이 중요합니다. 귀하의 웹 공간에 설치되어 있는지 확인하시기 바랍니다.

  2. bind_result() 및 fetch() 사용:

    "mysqlnd" 드라이버를 설치할 수 없는 경우 "bind_result()를 사용할 수 있습니다. ” 및 “fetch()” 메소드를 사용하여 쿼리 결과를 얻습니다. 이러한 방법은 "mysqlnd" 드라이버의 영향을 받지 않습니다. 샘플 코드는 다음과 같습니다.

$stmt->bind_result($emailVerified, $blocked);
$stmt->fetch();
  1. mysqli_stmt->execute()를 확인하세요. 반환 값:

    "mysqli_stmt->execute()" 메서드가 성공적으로 실행되었는지 확인하세요. "false"를 반환하면 "stmt" 개체에 대한 결과가 설정되지 않습니다.

예:

다음은 문제를 해결한 수정된 코드입니다.

include 'conn.php';
$conn = new Connection();
$query = 'SELECT EmailVerified, Blocked FROM users WHERE Email = ? AND SLA = ? AND `Password` = ?';
$stmt = $conn->mysqli->prepare($query);
$stmt->bind_param('sss', $_POST['EmailID'], $_POST['SLA'], $_POST['Password']);

if ($stmt->execute()) {
    $stmt->bind_result($emailVerified, $blocked);
    $stmt->fetch();
    // Use $emailVerified and $blocked here...
} else {
    echo "Error executing statement: " . $stmt->error;
}

위 내용은 '정의되지 않은 메서드 mysqli_stmt::get_result() 호출' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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