查询:从特定表中选择特定字段

时间:2015-04-08 00:34:45

标签: php mysql database select

我正在尝试创建一个登录函数,允许我指定要从中选择数据的表,以及我想要选择的字段。 我已设法将表值传递给函数,并从所需的表中选择数据,但我的表有不同的字段。如何在查询中指定它是一个表select:user_id,user_first_name,user_password,或者如果它是另一个表select member_id,member_first_name,member_password。

以下是我目前编码的内容:

public function logIn($id, $password, $table){
    $dataArray = array();
    $t = ($table === 'employers') ? 'employers' : 'members');
    $query = "SELECT user_id, user_first_name, user_password FROM $t";
    $stmt = $this->link->prepare($query);

    if ($stmt->execute())
    {
        $result = $stmt->get_result();
        while($row = $result->fetch_array(MYSQLI_ASSOC))
            { 
            $dbuser_id = $row['user_id'];
            $dbpassword = $row['user_password'];
            $dbuser_first_name = $row['user_first_name'];
            } 
    //and so on...

另外,一个简单的问题:这是一个糟糕的编程习惯,还是我应该有2个登录(成员和用户)?

谢谢:)

1 个答案:

答案 0 :(得分:0)

编程中的单一责任原则旨在防止这样的事情发生 - 目标是让一个班级/职能部门承担一项责任,而不是像现在这样管理2个(或可能更多)。简而言之,这是一个糟糕的编程习惯,你应该有2个登录功能,就像你说的那样。在创建2个不同的函数之后,switch语句可能有助于检查成员登录与用户的情况。

注意:这有例外。但是,在您的情况下,将两者分开会更有意义。

以下是进一步解释 SRP SOLID 设计原则的链接:

Single Responsibility Principle on TutsPlus