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程序设计有所帮助。
