批改状态:合格
老师批语:
1.入口文件.index.php
<?php /*单例类:允许且仅被实例化一次的类,该类多次应用但是是同一个对象, 且该对象不允许被克隆,自身实例化,自身返回该类对象 注:因为php中的单例和java asp.net ios等不一样,php中所有的全局变量和 静态成员在被解释执行后都会被收回,不像java asp.net ios的单例会存在整个 应用程序的生命周期内,所以php单例类适用于单个页面多次调用同一个对象 */ /* MVC设计模式是v是视图层展示用户界面,m是模型层处理数据,c是控制层, 控制m和v同步,取出m模型层传送数据对v进行渲染 */ require './control/control.php'; $control = new control; $control->index(); ?>
点击 "运行实例" 按钮查看在线实例
2.控制器文件control.php
<?php
require './Model/model.php';//加载模型
require '/View/view.php';//加载视图
class control
{
public function index()
{
//获取模型数据
$model =model::getInstace();
$result = $model->select(' userinfo ',' id,account,head ',' id>0 ',' ',' ');
//渲染视图
$view = new view();
print $view->display($result);
}
}
?>点击 "运行实例" 按钮查看在线实例
3.视图文件view.php
<?php
class view
{
public $html;
private $data;
public function display($data=array()){
$this->html ='<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html" />
<title>用户信息表</title>
</head>
<body> ';
$this->html.='<table width=30% align="center" cellpadding="5px" border="1px soilds" cellspacing="0" >';
$this->html.='<caption style="margin-left:20px;margin-bottom:20px;font-size:1.5em;">用户信息</caption>';
$this->html.='<tr style="text-align:center;background-color: lightblue"> <td>用户ID</td> <td>用户名</td> <td>用户级别</td>';
foreach($data as $v){
$this->html.='<tr style="text-align:center"> <td>'.$v['id'].'</td> <td>'.$v['account'].'</td> <td>'.$v['head'].'</td>';
}
$this->html.='</table>';
$this->html.= '</body></html>';
return $this->html;
}
}
?>点击 "运行实例" 按钮查看在线实例
4.模型文件model.php
<?php
//数据库单例模型
class model
{
private $type = 'mysql';//数据库类型
private $host = '127.0.0.1';//数据库主机
private $user = 'root';//数据库用户名
private $pass = 'root';//数据库密码
private $name = 'test';//数据库名
private $char= 'utf8';//数据库字符集
private static $instace;//实例对象
private $pdo= null;//PDO对象
private $result= null;//执行结果
//构造方法私有,禁止外部改变
private function __construct()
{
/*PDO连接数据库*/
$dsn = $this->type.':host='.$this->host.';dbname='.$this->name;
try{
//设置数据库字符集
$set_char = array(PDO::ATTR_PERSISTENT=>true,PDO::ATTR_ERRMODE=>2,PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES utf8');
//连接数据库
$this->pdo = new PDO($dsn,$this->user,$this->pass,$set_char);
}catch(PDOException $e){
//捕捉错误信息
die('连接失败:'.$e->getMessage());
}
}
//防止克隆
private function __clone() {}
//实例化
public static function getInstace(){
if((self::$instace instanceof self) == false){//检测当前对象是否已经创建且属于当前实例
self::$instace =new self();
}
return self::$instace;
}
//查询语句
public function select($table,$filed = '*',$where=' ',$orderBy = ' ',$limit = ' '){
$sql = " SELECT $filed FROM $table WHERE $where $orderBy $limit";
$stmt=$this->pdo->prepare($sql);
if($stmt->execute()){
$this->result = $stmt->fetchAll();
return $this->result;
}else{
echo '查询出错';
}
}
}
?>点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号