1. ホーム
  2. php

[解決済み】未定義のメソッド mysqli_stmt::get_result を呼び出す。

2022-02-13 10:26:21

質問

以下は私のコードです。

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']);
$stmt->execute();
$result = $stmt->get_result();

最後の行で次のようなエラーが発生します。 未定義のメソッド mysqli_stmt::get_result() をコールしています。

以下は、conn.phpのコードです。

define('SERVER', 'localhost');
define('USER', 'root');
define('PASS', 'xxxx');
define('DB', 'xxxx');
class Connection{
    /**
     * @var Resource 
     */
    var $mysqli = null;

    function __construct(){
        try{
            if(!$this->mysqli){
                $this->mysqli = new MySQLi(SERVER, USER, PASS, DB);
                if(!$this->mysqli)
                    throw new Exception('Could not create connection using MySQLi', 'NO_CONNECTION');
            }
        }
        catch(Exception $ex){
            echo "ERROR: ".$e->getMessage();
        }
    }
}

この行を書くと

if(!stmt) echo 'Statement prepared'; else echo 'Statement NOT prepared';

印刷されます 'ステートメントが準備されていない' . IDEで?マークを値に置き換えて直接クエリを実行すると、問題なく動作します。プロジェクト内の他のクエリでは、$conn オブジェクトが正常に動作することに注意してください。

何か手助けがあればお願いします.........。

解決方法は?

この方法については、ユーザーノートをお読みください。

http://php.net/manual/en/mysqli-stmt.get-result.php

mysqlndドライバが必要です... もし、あなたのウェブスペースにインストールされていない場合は bind_result() &です。 fetch() !