0

mysqli を使用してデータベースに接続するクラスを実行しようとしています。このクラスから、メソッドを呼び出してクエリを実行する他のクラスを継承します。クラスの一部:

    protected $conn;
    protected $stmt;
    protected $reflection; 
    protected $sql;

    public function connect() {
        $this->conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
    }

    protected function prepare_query() {
        $this->stmt = $this->conn->prepare($this->sql);
        $this->reflection = new ReflectionClass('mysqli_stmt');
    }

    protected function set_params() {
        $method = $this->reflection->getMethod('bind_param');
        $method->invokeArgs($this->stmt, $this->data);
    }

    public function execute() {
        $this->connect();
        $this->prepare_query();
        $this->set_params();
        $this->stmt->execute();
    }

問題なく、引数を含む配列を送信します。しかし...その後、次のエラーが発生します。ReflectionMethod::invokeArgs()は、パラメーター1がオブジェクトであると想定しています。デバッガーを使用すると表示されるブール値であり、配列は問題ありません。クエリは問題ありません。それで、私は何を間違っていますか?

COからのご挨拶

4

0 に答える 0