在我的项目中,我有一个用于处理所有 MySQL 内容的数据库类。它连接到数据库、运行查询、捕获错误并关闭连接。
现在我需要在我的网站上创建一个成员(member)区,我打算构建一个用户类来处理注册、登录、密码/用户名更改/重置和注销。在这个用户类中,出于显而易见的原因,我需要使用 MySQL……这就是我创建数据库类的目的。
但我对如何在我的用户类中使用我的数据库类感到困惑。我是否想为我的用户类创建一个新的数据库对象,然后在该类中的方法完成时关闭它?或者我是否以某种方式制作了一个可以在我的整个脚本中使用的“全局”数据库类(如果是这种情况,我需要帮助,不知道该怎么做。)
感谢您给我的任何反馈。
最佳答案
简单的 3 步过程。 1/创建一个数据库对象。 2/将其交给您的用户类构造函数。 3/在用户方法中使用它。
小例子。
文件数据库.class.php :
<?php
class Database{
public function __construct(){
// Connects to database for example.
}
public function query($sqlQuery){
// Send a query to the database
}
[...]
}
在 User.class.php 中:
<?php
class User{
private $_db;
public function __construct(Database $db){
$this->_db = $db;
}
public function deleteUser(){
$this->_db->query('DELETE FROM Users WHERE name = "Bobby"');
}
}
现在,例如在 userManager.php 中:
<?php
$db = new Database();
$user = new User($db);
// Say bye to Bobby :
$user->deleteUser();
如果你想要这个旧技术的当前流行名称,谷歌“依赖注入(inject)”。 php 中的单例模式将很快消失。
关于php - 在我的用户类中使用数据库类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2576635/