PHP数据对象映射模式实例分析
发布:smiling 来源: PHP粉丝网 添加日期:2021-11-14 12:40:32 浏览: 评论:0
这篇文章主要介绍了PHP数据对象映射模式,结合实例形式分析了php数据对象模式原理、定义与相关使用方法,需要的朋友可以参考下。
本文实例讲述了PHP数据对象映射模式,分享给大家供大家参考,具体如下:
将对象和数据存储映射起来,对一个对象的操作映射为对数据存储的操作。
例如在代码中new 一个对象,使用数组对象映射模式可以将对象的一些操作,比如设置一些属性,就会自动保存到数据库,跟数据库表的一条记录对应起来
在代码中实现数据对象映射模式,我们将实现一个ORM类,将复杂的SQL语句映射成对象属性的操作。同时结合工厂模式和注册模式使用
例1【例1】
数据库 test ,user 表结构:
- CREATE TABLE `user` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `name` varchar(32) CHARACTER SET utf8 DEFAULT NULL,
- `mobile` varchar(11) CHARACTER SET utf8 DEFAULT NULL,
- `regtime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
Common\User.php:
- <?php
- namespace Common;
- class User{
- public $id;
- public $name;
- public $mobile;
- public $regtime;
- protected $db;
- //构造方法
- function __construct($id) {
- $this->db = new Database\MySQLi();
- $conn = $this->db->connect('127.0.0.1', 'root', '', 'test');
- $res = $this->db->query("select * from user where id = {$id} limit 1");
- $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("update user set name = '{$this->name}', mobile = '{$this->mobile}', regtime = '{$this->regtime}' where id = {$this->id} limit 1");
- }
- }
Common\Databases\MySQLi.php
- <?php
- namespace Common\Database;
- use Common\IDatabase;
- class MySQLi implements IDatabase{
- protected $conn;
- function connect($host, $user, $passwd, $dbname){
- $conn = mysqli_connect($host, $user, $passwd ,$dbname);
- $this->conn = $conn;
- }
- function query($sql){
- $res = mysqli_query($this->conn, $sql);
- return $res;
- }
- function close(){
- mysqli_close($this->conn);
- }
- }
入口文件 index.php
- <?php
- define('BASEDIR',__DIR__); //定义根目录常量
- include BASEDIR.'/Common/Loader.php';
- spl_autoload_register('\\Common\\Loader::autoload');
- echo '<meta http-equiv="content-type" content="text/html;charset=utf8">';
- /*
- * 对对象属性的操作就完成了对数据库的操作
- */
- $user = new Common\User(1);
- //读取数据
- var_dump($user->id, $user->mobile, $user->name, $user->regtime);exit();
- $user->mobile = '13800138000';
- $user->name = 'Arshavin';
- $user->regtime = date("Y-m-d H:i:s",time());
Tags: PHP数据对象 PHP映射模式
- 上一篇:PHP模版引擎原理、定义与用法实例
- 下一篇:浅谈php调用python文件
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)