Jos*_*osh 7 php database class object
在我的项目中,我有一个数据库类,用于处理所有MySQL的东西.它连接到数据库,运行查询,捕获错误并关闭连接.
现在我需要在我的网站上创建一个成员区域,我打算构建一个用户类来处理注册,登录,密码/用户名更改/重置和注销.在这个用户类中,我需要使用MySQL,原因很明显......这就是我的数据库类.
但是我对如何在用户类中使用我的数据库类感到困惑.我是否想为我的用户类创建一个新的数据库对象,然后只要该类中的方法完成就关闭它?或者我以某种方式创建一个可以在整个脚本中使用的"全局"数据库类(如果是这种情况我需要帮助,不知道该怎么做.)
感谢您提供给我的任何反馈.
Ark*_*rkh 22
简单,3步骤的过程.1 /创建数据库对象.2 /将它提供给用户类构造函数.3 /在用户方法中使用它.
小例子.
文件Database.class.php:
<?php
class Database{
public function __construct(){
// Connects to database for example.
}
public function query($sqlQuery){
// Send a query to the database
}
[...]
}
Run Code Online (Sandbox Code Playgroud)
在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"');
}
}
Run Code Online (Sandbox Code Playgroud)
现在,在userManager.php中,例如:
<?php
$db = new Database();
$user = new User($db);
// Say bye to Bobby :
$user->deleteUser();
Run Code Online (Sandbox Code Playgroud)
如果你想要这个旧技术的当前流行名称,请谷歌"依赖注入".php中的Singleton模式很快就会消失.
既然您将数据库用作对象,为什么不直接向对象添加方法,让您的“用户类”可以用来处理它需要做的事情。用户类可以包含指向数据库类的指针。数据库类将保护您的数据库,并确保用户类正确使用它。