繁体   English   中英

最好的方法,不要重复查询?

[英]best way to do not redundant query?

我创建了基于MVC模型的Rest API。 到目前为止,一切工作都很好,但是当我有20或30个将与数据库进行通信的模型时,我想为将来找到一个聪明的方法。 特别是,在每个模型函数中,我都应该这样编写查询:

if($stmt = $connection->prepare("SELECT first_name FROM table WHERE id = ?"))
{
        $id = 86;
        $stmt->bind_param("i", $id);
        $stmt->execute(); 
        $stmt->bind_result($res);   
        $stmt->fetch();

        echo "My name is => " . $res;

        $stmt->close();
 }

这变得很烦人。 我该如何做类似CodeIgniter的事情? 我不想使用外部库或框架,因为我试图学习如何单独构建基础。 现在,我知道这个问题可能不完全符合社区标准,但是我希望有人会理解这仍然是一个技术问题。

为此,您可以创建一个包含一个类的类,该类可以接受要与db通信的参数,这是您想要的方式。

例如:你可以创建的方法等function getAll($table) ,这将返回的所有行$table 然后,您将不需要编写相同的表来一次又一次地获取代码。 您可以只调用getAll("users"); 这将返回users表的所​​有行,或者将返回getAll('products );`将返回“产品”表的所有行。 我认为这些辅助方法中的代码对您来说并不困难。 这是使您的给定代码减少冗余的方法。

function findFromTable($table, $id){
  if($stmt = $connection->prepare("SELECT first_name FROM $table WHERE id = ?"))
  {
        $stmt->bind_param("i", $id);
        $stmt->execute(); 
        $stmt->bind_result($res);   
        $stmt->fetch();

        echo "My name is => " . $res;

        $stmt->close();
  }
}

希望这能使您摆脱困境或感到多余。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM