å°æ¡æ¶ å¢å æ¹æ¥
2018å¹´01æ18æ¥ 15:14:21é 读æ°ï¼262
viewæ件ä¸çindex.php
//å è½½ææç¨å°çç±»
require 'model/Db.php';
require 'model/Model.php';
require 'model/StudentModel.php';
//å½åURLä¸æ没æcontrollerï¼æ åé»è®¤Student
$controller = isset($_GET['c'])?$_GET['c']:'Student';
//ç»æ§å¶å¨å åç¼
$controller .= 'Controller';
//å è½½æ§å¶å¨
require 'controller/'.$controller.'.php';
//è·åä¸ä¸æä½
$action = isset($_GET['a'])?$_GET['a']:'getAll';
$stu = new $controller();
$stu->$action();
controlleræ件ä¸çStudentController.php
class StudentController
{
//è·åæææ°æ®
public function getAll()
{
//å®ä¾å模åï¼è·åæ°æ®
$stu = new StudentModel();
$data = $stu->all();
print_r($data);
}
//è·ååæ¡æ°æ®
public function getInfo($id=1)
{
$id = isset($_GET['id']) ? $_GET['id'] : $id;
//å®ä¾å模åï¼è·åæ°æ®
$stu = new StudentModel();
$data = $stu->get($id);
//Â Â Â Â Â Â Â Â print_r($data);
}
}
modelä¸é¢çdb.php å°è£ æ°æ®åº
class Db
{
//é ç½®åæ°
private $dbConfig = [
'dbType'=>'mysql',//æ°æ®åºç±»å
'host'=>'localhost',//æå¡å¨å称
'charset'=>'utf-8',//å符ç¼ç
'dbname'=>'demo',//æ°æ®åº
'userName'=>'root',//ç¨æ·å
'password'=>'root',//å¯ç
];
//æ°å¢ä¸»é®ID
public $insertIDd = null;
//åå½±åçè®°å½æ°
public $num = 0;
//åä¾æ¨¡å¼ï¼å½åç±»å®ä¾
private static $instance = null;
//æ°æ®åºè¿æ¥å¯¹è±¡
private $pdo;
//æé æ¹æ³
private function __construct($params=[])
{
//使ç¨ç¨æ·èªå®ä¹çåæ°æ¥æ´æ°é»è®¤çåæ°
$this->dbConfig = array_merge($this->dbConfig,$params);
//è¿æ¥æ°æ®åº
$this->connect();
}
private function __clone()
{
// TODO: Implement __clone() method.
}
//è·åå½åç±»çå¯ä¸å®ä¾
public static function getInstance($params=[])
{
if (!self::$instance instanceof self) {
self::$instance = new self($params);
}
return self::$instance;
}
//è¿æ¥æ°æ®åº
private function connect()
{
try{
//é ç½®DSN
$dsn = $this->dbConfig['dbType']
.':host='.$this->dbConfig['host']
.';dbname='.$this->dbConfig['dbname']
.';charset='.$this->dbConfig['charset'];
$userName = $this->dbConfig['userName'];
$password = $this->dbConfig['password'];
//å建PDO对象ï¼è¿æ¥æ°æ®åº
$this->pdo = new PDO($dsn,$userName,$password);
}catch (PDOException $e) {
print $e->getMessage();
die();
}
}
//åæä½ï¼æ°å¢ï¼æ´æ°ï¼å é¤ï¼exrc()
public function exec($sql)
{
$num = $this->pdo->exec($sql);
if ($num >0) {
if (null !==$this->pdo->lastInsertId()) {//æ°å¢æä½
$this->insertIDd = $this->pdo->lastInsertId();
}
$this->num = $num;//æ´æ°ï¼å é¤
}else{
print_r($this->pdo->errorInfo());
}
}
//è·ååæ¡è®°å½
public function get($sql)
{
$pdoStmt = $this->pdo->query($sql);
if (isset($pdoStmt) && $pdoStmt->rowCount()>0) {
return $pdoStmt->fetch(PDO::FETCH_ASSOC);
}else {
print_r($this->pdo->errInfo());
}
}
//è·åææè®°å½
public function all($sql)
{
$pdoStmt = $this->pdo->query($sql);
if (isset($pdoStmt) && $pdoStmt->rowCount()==1) {
return $pdoStmt->fetchAll(PDO::FETCH_ASSOC);
}else {
print_r($this->pdo->errInfo());
}
}
}
modelæ件夹ä¸é¢çmodel.php
class Model
{
protected $db = null;//æ°æ®åºè¿æ¥å¯¹è±¡
public $data = null;//å½åç¨æ·è¯·æ±çæ°æ®
public function __construct()
{
$this -> init();//åå§åå°±æ¯è¿æ¥æ°æ®åº
}
private function init()
{
$dbConfig = [
'userName'=>'root',
'password'=>'root',
'dbname'=>'demo'
];
//ç¨èªå®ä¹çè¿æ¥å¯¹è±¡
$this->db = Db::getInstance($dbConfig);
}
//è·åæææ°æ®
public function all()
{
$sql = "SELECT id,name FROM demo";
return $this->data = $this->db->all($sql);
}
//è·ååæ¡æ°æ®
public function get($id=1)
{
$sql = "SELECT id,name FROM demo WHERE id={$id}";
return $this->data = $this->db->get($sql);
}
}
modelä¸é¢çtest_db.phpæµè¯å¢å æ¹æ¥
//æµè¯dbç±»å¢å æ¹æ¥
include 'db.php';
$db = Db::getInstance();
echo 'pre';
//è·åid=5çè®°å½
$sql = 'SELECT * FROM demo WHERE id=5';
print_r($db->get($sql));
//è·åå¤æ¡è®°å½
$sql = 'SELECT * FROM demo';
print_r($db->all($sql));
//æ°å¢æä½
$sql = "INSERT demo SET name='peter',email='[email protected]',";
$db->exec($sql);
echo 'æ°å¢ä¸»é®'.$db->insertIDd,',æå ¥äº'.$db->num.'æ¡';
//æ´æ°æä½
$sql = "UPDATE demo SET name='peterZHU' id=8";
$db->exec($sql);
echo 'æ´æ°äº'.$db->num.'æ¡';
//å é¤æä½
$sql = 'DELETE FROM demo WHERE id=8';
$db->exec($sql);
echo 'å é¤äº'.$db->num.'æ¡';
å ¨é¨è¯è®º
ææä¸ç½çæ§åè¨ï¼è¯·éµå®æ°é»è¯è®ºæå¡åè®®0æ¡è¯è®º
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SO0YjY0cTOwMWN0QzY4gDN1YDZkRDZ2MDMhdDM1Q2N08CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
ç«å³æ交