我不熟悉以 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);
然后我想在另一个文件的数据库连接中使用变量 $mysqli - 这是一个使用 $mysqli 变量连接的简单插入数据库。我在连接文件中包含了上述内容,但是当我在数据库类中调用该方法时,似乎没有返回 $mysqli 变量。我收到 PHP 错误说...
Fatal error: Call to a member function prepare() on a non-object in...
我已经看到使用
global $mysqli;
可以,但是我想以正确的方式来做,因为我听说这不是好的做法。
我知道我在这里可能做错了一些事情,因为我是使用 OOP 的新手,但我假设通过在连接函数中返回该变量,我可以通过在外部创建类来访问它。
感谢您的帮助,谢谢。