概念
数据对象映射模式,就是将对象和数据存储映射起来,对一个对象的操作会映射为对数据存储的操作,数据映射模式使您能更好的组织你的应用程序与数据库进行交互。大家如果用过 thinkphp 这个框架,应该知道里面的 Model 吧,当你 new User(或 $user = M(‘User’)) 的时候,其实就是在操作 user 表
示例
class User
{
//分别对应User表里面的四个字段
public $id;
public $name;
public $mobile;
public $regtime;
//保存数据库连接
private $db;
function __construct($id)
{
$this->db = new PDO('mysql:host=127.0.0.1;dbname=test', 'root', 'zhongjin');
$res = $this->db->query("SELECT * FROM user WHERE id={$id} LIMIT 1");
$data = $res->fetch(PDO::FETCH_ASSOC);
$this->id = $data['id'];
$this->name = $data['name'];
$this->mobile = $data['mobile'];
$this->regtime = $data['regtime'];
}
function __destruct()
{
$sql = "UPDATE user SET name=?,mobile=?,regtime=? WHERE id=? LIMIT 1";
$res = $this->db->prepare($sql);
$res->execute(array($this->name, $this->mobile, $this->regtime, $this->id));
}
}
链式操作
要想继续实现常见的链式操作,就要用到流接口模式了,详情见 https://www.phpmianshi.com/?id=128