重複の可能性:
リファレンス - PHP でこのエラーはどういう意味ですか?
私は2つのクラスを持っています:
- データベース クラス
- libtables クラス
データベース クラスでは、スクリプト全体で mysqli と連携するオブジェクトを作成しました。.php ファイルのデータベース クラスから関数を呼び出そうとすると機能します。
簡略化されたデータベース クラス:
class Database {
protected static $_instance;
protected $_mysqli;
protected $_query;
public function __construct($host, $username, $password, $db) {
$this->_mysqli = new mysqli($host, $username, $password, $db)
or die("There was a problem connecting to the database");
}
public function close() {
$this->_mysqli->close();
}
public function query($q) {
return $this->_mysqli->query($q);
}
}
しかし、Libtables クラスのデータベース クラスから関数を呼び出そうとすると失敗し、「オブジェクト以外のメンバー関数 query() を呼び出します」というエラーが表示されます。
単純化された Libtables クラス:
class Libtables {
function getCol($table) {
$q = "SELECT * from " . $table . ";";
$res = $db->query($q);
return $res;
}
}
この方法でデータベース クラス オブジェクトを作成しました。
$db = new Database(DB_HOST, DB_USER, DB_PASS, DB_NAME);
global $db;