php - 查询 : select specific fields from specific table

标签 php mysql database select

我正在尝试创建一个登录功能,该功能允许我指定要从中选择数据的表以及要选择的字段。 我已设法将表值传递给函数,并从所需的表中选择数据,但我的表有不同的字段。如何在查询中指定它是一个表选择: user_id, user_first_name, user_password ,或者如果是另一个表选择 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 个登录名(成员和用户)?

谢谢:)

最佳答案

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

注意:也有异常(exception)情况。但是,就您而言,将两者分开会更有意义。

这里是进一步解释SRPSOLID设计原则的链接:

Single Responsibility Principle on TutsPlus

关于php - 查询 : select specific fields from specific table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29503867/

相关文章:

mysql - 使用内容类型 (object_pk) 创建通用关系时出错

sql - 在 SQL 中,为什么在子查询中不使用 "Distinct",在其他表中查找某些项目 "not showing up"?

database - 数据库 : What are the options? 的地理冗余

php - 我应该以哪种格式期望提交的文本区域中的换行符

javascript - 在symfony twig中回显json编码的字符串

php - 为什么不使用包含变量?

ruby-on-rails - Ruby on Rails 数据库 - 如何组织 CMS?

php - 如何在 Laravel 中使用 Ajax 调用将数据发布到数据库?

mysql - 部署到客户端电脑 vb.net 时 Crystal 报表项目不显示

mysql - 如何动态编辑mysql数据行?