<?php
class data
{
//数据项
public $id;
public $name;
public $money;
//数据库连接对象
protected $con;
//查询数据的构造函数
public function __construct($id)
{
//连接数据库
$this->con = db::getinstance()->connect();
//查询数据
$res = $this->con->query('select * from account where id = '.$id.' limit 1');
$data = $res->fetch(pdo::fetch_assoc);
//把取出来的数据项存储起来
$this->id = $data['id'];
$this->name = $data['name'];
$this->money = $data['money'];
}
//修改数据的析构函数
public function __destruct()
{
$this->con->query("update account set name = '{$this->name}', 'money = {$this->money}' where id = {$this->id}");
}
}
?>
下面我们就使用工厂模式,注册树模式,数据对象映射模式来完善一下这个例子
数据库连接文件db.php
自动加载类文件config.php
获取数据的文件data.php
我们将原来的入口文件改一下:
datauser.php
<?php
define('basedir', __dir__);
require 'config.php';
spl_autoload_register(config::autoload);
class datauser
{
public function index()
{
//使用工厂模式来生成对象
$user = factory::getuser(1);
var_dump($user->id);
$this->name();
$this->money();
}
public function name()
{
$user = factory::getuser(1);
var_dump($user->name);
}
public function money()
{
$user = factory::getuser(1);
var_dump($user->money);
}
}
?>