PHP数据对象映射模式实例分析
本文实例讲述了PHP数据对象映射模式。分享给大家供大家参考,具体如下:
将对象和数据存储映射起来,对一个对象的操作映射为对数据存储的操作。
例如在代码中new一个对象,使用数组对象映射模式可以将对象的一些操作,比如设置一些属性,就会自动保存到数据库,跟数据库表的一条记录对应起来
在代码中实现数据对象映射模式,我们将实现一个ORM类,将复杂的SQL语句映射成对象属性的操作。同时结合工厂模式和注册模式使用
例1
【例1】
数据库test,user表结构:
CREATETABLE`user`( `id`int(11)NOTNULLAUTO_INCREMENT, `name`varchar(32)CHARACTERSETutf8DEFAULTNULL, `mobile`varchar(11)CHARACTERSETutf8DEFAULTNULL, `regtime`timestampNULLDEFAULTNULLONUPDATECURRENT_TIMESTAMP, PRIMARYKEY(`id`) )ENGINE=InnoDBAUTO_INCREMENT=2DEFAULTCHARSET=latin1;
Common\User.php:
db=newDatabase\MySQLi(); $conn=$this->db->connect('127.0.0.1','root','','test'); $res=$this->db->query("select*fromuserwhereid={$id}limit1"); $data=$res->fetch_assoc(); $this->id=$data['id']; $this->name=$data['name']; $this->mobile=$data['mobile']; $this->regtime=$data['regtime']; } //析构方法 function__destruct(){ $this->db->query("updateusersetname='{$this->name}',mobile='{$this->mobile}',regtime='{$this->regtime}'whereid={$this->id}limit1"); } }
Common\Databases\MySQLi.php
conn=$conn; } functionquery($sql){ $res=mysqli_query($this->conn,$sql); return$res; } functionclose(){ mysqli_close($this->conn); } }
入口文件index.php
'; /* *对对象属性的操作就完成了对数据库的操作 */ $user=newCommon\User(1); //读取数据 var_dump($user->id,$user->mobile,$user->name,$user->regtime);exit(); $user->mobile='13800138000'; $user->name='Arshavin'; $user->regtime=date("Y-m-dH:i:s",time());
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。