对象转数据php,php – 将数据库值转换为对象

问题是你有类,然后你有数据库数据.创建对象时,如何设置对象属性以包含数据库中的数据?

我看到这样的东西,我想知道这是否真的是最好的方法.我确信这是一个相当普遍的问题,但我不知道如何处理它是最受欢迎的解决方案.

在此示例中,在创建对象时,您将id作为参数传递,然后使用id运行对数据库的查询,并将返回值分配给对象属性.我没有太多的PHP经验,也没有看到过这么多.

这是实现这一目的的可接受方式吗?有更好或更被接受的方式吗?

public function __construct($id = null){

if($id != null){

$sql = "SELECT *

FROM users

WHERE user_id = $id";

$res = Db::returnRow($sql);

// $res contains an associative array with database columns and values

if($res){

$this->user_id = $res['user_id'];

$this->user_name = $res['user_name'];

//and so on...

}

}

}

有人可以提供一些示例代码或伪代码来说明这样做的正确方法是什么?

解决方法:

这可能是一种可接受的作业方式.但建筑本身并非如此.

表示业务数据的类(示例中的用户)必须与数据库访问逻辑松散耦合.最后,充当用户的PHP类不应该知道数据来自数据库,文件或任何其他资源.接下来,您将能够在其他项目中重用您的用户php类,而无需更改任何内容!如果你有数据访问逻辑,你就会陷入困境.

结论:我建议阅读一些关于设计模式的资源(在你的情况下看看DAO模式);)提示:Head First系列中的一个非常容易访问和愉快.

标签:php,oop

来源: https://codeday.me/bug/20190527/1160736.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值