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からのご挨拶