我正在为我的一个客户端编写一个Web应用程序,我决定将数据库连接保存在一个类中。下面的代码是我所拥有的:
class databaseConnection {
private $hostname = 'hn.app.dev';
private $username = 'root';
private $password = '';
private $database = 'hn_app_dev';
public function connect() {
$host = mysqli_connect($this->hostname, $this->username, $this->password);
if ($host) {
$connection = mysqli_select_db($host, $this->database);
if (!$connection) {
die('An error occured while trying to connect to the database.');
}
return $connection;
}
}
}
我使用mysqli_query
的标准PHP函数向数据库发送查询。我使用以下代码向数据库发送查询:
function fetch_from_db($query) {
$connection = new databaseConnection();
$query = mysqli_query($connection->$connection, 'QUERY');
}
我刚开始在代码中使用类。我还在学习,就像我们大家一样。我已经检查了,但没有找到解决我的问题的方法。我知道问题是什么:这是一个类作为对象的问题,并且与从它获取返回的$connection
变量有关。
我如何解决这个问题,以便我可以正确地连接到我的数据库?另外,谁能告诉我一些文档的方向,我可以学习修复,以便我可以在未来解决这个问题。
谢谢大家!
3条答案
按热度按时间8ftvxx2r1#
有许多不同的方法可以编写对象来处理数据库的连接和查询。
最重要的是你想达到什么目标。
我想这些会是你想拥有的一些功能。
__construct()
中的值传入这是一些基本的功能,可以很容易地扩展apon.
您可以在手册中学习更多关于OOP和PHP对象的知识,并且在线上有许多教程专门介绍管理数据库连接和查询的类。
希望这有帮助!
omqzjyyz2#
如果你想把它保存在一个类中,你永远不要调用
connect()
函数,但是如果你想在初始化类时连接它,把connect()
函数改为__construct()
,并删除return
,把它赋给一个公共变量。之后,您可以在函数中获取数据库连接,如下所示:
现在,在说了所有这些之后,你不想在每个函数中创建一个新的示例来访问数据库,所以可以使它成为静态的,并创建一个
init()
函数,这样它在整个应用程序中占用更少的内存。对于类文档,PHP的Classes/Objects页面会有帮助。特别是“示例”链接。
ttcibm8c3#
这对我很有效。