OOP の方法で PHP を使用するのは初めてですが、データベース接続クラスに問題があることがわかりました。
この mysqli 接続クラスを含むファイルがここにあります
$db_name = 'dbname';
$db_user = 'dbuser';
$db_password = 'dbpassword';
$db_host = 'localhost';
class database {
public $mysqli;
public function connect($db_host, $db_user, $db_password, $db_name){
$this->mysqli = new mysqli($db_host, $db_user, $db_password, $db_name);
if ($mysqli->connect_errno) {
return "Sorry Andre, but you seem to have messed up the DB connection :(";
}
}
}
$newConnection = new database;
$newConnection->connect($db_host, $db_user, $db_password, $db_name);
次に、別のファイルの db 接続で変数 $mysqli を使用したいと考えています。これは、$mysqli 変数を使用して接続するデータベースへの単純な挿入です。上記を接続ファイルに含めましたが、データベース クラス内でメソッドを呼び出したときに $mysqli 変数が返されないようです。PHPエラーが表示されます...
Fatal error: Call to a member function prepare() on a non-object in...
私はそれを使用して見ました
global $mysqli;
うまくいきますが、それは良い習慣ではないと聞いたので、適切な方法でやりたいと思います。
私はOOPの使用に慣れていないため、ここで少し間違ったことをしている可能性があることを理解していますが、connect関数でその変数を返すことで、外部のクラスを作成してアクセスできると想定しました。
助けていただければ幸いです。