ホームページ >バックエンド開発 >PHPチュートリアル >「未定義メソッド mysqli_stmt::get_result() への呼び出し」エラーが発生するのはなぜですか?
「mysqli_stmt::get_result()」メソッド呼び出し未定義の問題
「mysqli_stmt」から「get_result()」メソッドを使用しようとしているときオブジェクト内のクエリ結果を取得する場合、「未定義のメソッドを呼び出します」と表示されます。 mysqli_stmt::get_result()」エラー。
問題の原因:
このエラーは、「get_result()」メソッドが「mysqli_stmt」オブジェクトで使用できないことを示しています。これは、「mysqlnd」ドライバーが欠落していることが原因である可能性があります。
解決策:
mysqlnd ドライバーをインストールします:
このドライバーは、「 get_result 」を使用する場合に役立ちます。 ()」メソッドが重要です。 Web スペースにインストールされていることを確認してください。
bind_result() と fetch() を使用します。
「mysqlnd」ドライバーをインストールできない場合は、「bind_result()」を使用できます。 」および「fetch()」メソッドを使用してクエリ結果を取得します。これらのメソッドは、「mysqlnd」ドライバーの影響を受けません。サンプルコードは次のとおりです。
$stmt->bind_result($emailVerified, $blocked); $stmt->fetch();
Check 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 中国語 Web サイトの他の関連記事を参照してください。