gpt4 book ai didi

php - 不同类中的冗余 MySQL 查询

转载 作者:行者123 更新时间:2023-11-30 22:27:55 24 4
gpt4 key购买 nike

我正在创建一个使用 8 个类(更多类)的 PHP Web 应用程序。我意识到所有这些类都具有几乎相同的访问数据库的功能:get_single、get_list、插入、更新和删除。

针对哪个数据库表进行寻址以及选择哪些字段对于每个类(class)来说都是不同的。

例如:

function get_single($conn) {

$sql = $conn->prepare('SELECT id_person, join_date, img_profile, img_header, firstname, familyname, nationality, mail, password, birthday FROM person WHERE id_person = ?');
$sql->bind_param('i', $this->id);


$sql->execute();
$sql->bind_result($this->id, $this->join_date, $this->profile_img, $this->header_img, $this->firstname, $this->familyname, $this->nationality, $this->mail, $this->password, $this->birthday);

$sql->fetch();

return $this;
}

我问自己是否可以或应该为所有类编写一个函数,如下所示:

function get_single($id, $conn, $query) {

$sql = $conn->prepare($query);
$sql->bind_param('i', $id);


$sql->execute();
$sql->bind_result(/* ??? */);

$sql->fetch();

return /* ??? */ ;
}

...然后调用

$foo = new Foo(array('id' => $bar));
$foo = get_single($foo->id, $conn, $qry_single_foo);

这样我可以

  • 集中存储所有 SQL 查询
  • 减少整体代码量
  • 提高可读性……也许?

或者我应该有一个父类让这些类继承?

或者使用设计模式?也许是装饰者? (对不起,我的知识是不存在的)

现在我意识到以不同的方式可能更容易,我对各种可能性感到有点不知所措。

想法?

谢谢

最佳答案

您可以使用网络 MVC 框架或 ORM 库。

请检查一些可以与您的应用程序集成的 ORM 库。

ORM

关于php - 不同类中的冗余 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34715138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com