gpt4 book ai didi

PHP 面向对象 : retrieve data from database

转载 作者:可可西里 更新时间:2023-11-01 01:08:00 27 4
gpt4 key购买 nike

我是 OOP 的新手(在 PHP 编程方面也是如此),我在使用对象并将它们与数据库数据(在我的例子中是 MySql,但这无关紧要)连接时遇到了一些麻烦。

我在数据库中有一个表 USERS。我在 PHP 代码中声明了一个 class User,其中包含我需要的各种属性和方法。问题是将这个东西连接到数据库。
我在构造函数中放置了从数据库中检索数据的代码,因此当我需要处理特定用户时,我只需编写 $user = new User($user_id); 并开始处理该对象.完成后,我在对象上调用一个方法来将数据保存在数据库中,效果非常好。

当我需要有关单个页面中的许多用户 的数据时,就会出现问题,例如显示完整的用户列表。使用这种方法,当我需要用户列表时,我必须实例化所有对象,这会导致代码生成类型为 SELECT * FROM users WHERE user_id = 的太多查询 ...,而不是单个查询,例如 SELECT Only_needed_fields FROM users WHERE 1 LIMIT 20,就像我在过程代码中所做的那样。

解决此类问题的正确 OOP 方法是什么?在构造函数中检索数据的最佳做法是什么?

注意 请不要建议使用任何类型的框架 - 我想在使用抽象层之前学习纯 OOP PHP -

最佳答案

您的问题是您没有分离应用程序的层。你应该做的是有一个工厂类来实例化你的用户来处理数据库调用,让用户类只处理业务逻辑。这也将有助于提高代码的可测试性。

您的工厂类可以有两个方法。一个用于加载单个用户并实例化它,另一个用于加载一组用户。

关于PHP 面向对象 : retrieve data from database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6807266/

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