A point of PHP: mysqli_result::fetch_object() and ORM

本文对比了PHP中mysqli_result::fetch_object()函数与Java中Hibernate框架的功能。通过具体实例展示了如何使用PHP将数据库记录转换为对象属性,并讨论了字段名称与对象属性匹配的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

After using Hibernet in Java, I like the convenience  brought by it.

But in PHP:

mysqli_result::fetch_object() is a good and great function. It can complete Relation's turing into Object.

For example:

A table named Machine in database. It consists of "MACHINE_ID" and "MACHINE_NAME". 

$query = "selete * from method where METHOD_NAME'".$method_name."'";

$result = $mysqli->query($query);

if($obj = $result->fetch_object()){
   $this->machine->machine_id = $obj->MACHINE_ID;
   $this->machine->machine_name = $obj->MACHINE_NAME;
   return true;
  }
  else
   return false;
  }

 

As naming "machine_id" and "machine_name" of Machine object's properties, we have to write two lines:

   $this->machine->machine_id = $obj->MACHINE_ID;
   $this->machine->machine_name = $obj->MACHINE_NAME;

 

but if we name "MACHINE_ID" and "MACHINE_NAME" in Method object(Method.class), the two lines will disappear.

 

Another way, we change table "machine"'s fields into "machine_id" and "machine_name". That means make them to be same as Machine object's properties. Then the two lines will also disappear.

 

Machine object means abstrated conception class named Machine.class.php corresponding to table "machine" in DB.

 

I like and recommend the "Another way" or just do as the original codes. Never use the way in red colored as capitalization always means constant.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值