php - 在我的用户类中使用数据库类

标签 php database class object

在我的项目中,我有一个用于处理所有 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/

相关文章:

php - 使用 curl 将所有环境变量发布到端点

php - 无法使用 codeigniter 选择不同的值

database - 值得为重复~两次的数据库值创建一个唯一表吗?

c++ - 使用 () 创建类的实例

php - PDO 和 php - 在非对象上调用成员函数 prepare()

php - 在 null 上调用成员函数 connection()

database - 使用主键值字符 "1"而不是 int 值 1

sql - 存储海量数据日期的最佳方式

c++ - 编译 vector 类型的类的私有(private)成员时出错 - C++

java - Java中向类属性传递参数