如何从我的逻辑中分离查询到数据库 - 基本上分离责任

时间:2014-09-01 21:49:25

标签: php mysql

我正在使用登录系统。我试图避免重复代码,并尽可能多地分担责任。

假设我有一个Authentication类,它执行以下操作:

class Authentication
{
    public function login($username, $password);

    public function logout();

}

进一步向下走,我到达了一个点,我需要将用户输入的凭据与数据库中的凭据进行比较。

总的来说,我可以将其抽象到某一点,我需要对某些事情进行实际的独特查询。

例如,对于登录功能,我需要查询:

$dbPDO->prepare("SELECT $loginUsername, FROM $tableName WHERE $loginUsername=:username");

对于注册用户,我需要查询:

$dbPDO->prepare("INSERT INTO $tableName($loginUsername, $loginPassword, $loginEmail) VALUES (:username, :password, :email)");

依此类推。

这是我的问题/疑虑,无论你想称呼它。

通常我会建立一个只做某件事和某件事的类。而且我真的不想将查询与逻辑混合在一起(可以这么说)。

编写一个专门用于查询的类(或其他东西,例如接口,我不知道)是不是一个好主意。或者将查询与逻辑混合在一起可以吗?

我真的希望我以一种可以理解的方式解释自己。

1 个答案:

答案 0 :(得分:0)

我认为让数据库查询或数据处理方法与应用程序逻辑不同是一个好主意。这是MVC架构解决的问题之一。如果你不熟悉MVC,你现在想要阅读它,看它是否适合你想到的模型。

如果您愿意阅读,请参阅link