公司介紹視頻制作網(wǎng)站優(yōu)化排名金蘋果系統(tǒng)
1、實(shí)現(xiàn)效果調(diào)用實(shí)現(xiàn)數(shù)據(jù)增刪改查封裝
?
2、index.php 入口定義數(shù)據(jù)庫(kù)賬號(hào)密碼
<?php//定義當(dāng)前請(qǐng)求模塊
define("MODULE",'index');//定義數(shù)據(jù)庫(kù)
define('DB_HOST','localhost');//數(shù)據(jù)庫(kù)地址
define('DB_DATABASE','aaa');//數(shù)據(jù)庫(kù)
define('DB_USER','root');//數(shù)據(jù)庫(kù)賬號(hào)
define('DB_PWD','root');//數(shù)據(jù)庫(kù)密碼require "./core/KJ.php";
3、KJ.php引入基類
//自動(dòng)加載文件public static function _autoload($className){switch ($className){//自動(dòng)加載控制器case substr($className,-3)=='Crl':$path= CONTROLLER.'/'.$className.'.php';if(is_file($path)) include $path;break;//自動(dòng)加載基類case substr($className,-4)=='Base':$path= KJ_CORE.'/base/'.$className.'.php';if(is_file($path)) include $path;break;default :break;}}
4、基類使用pdo封裝增刪改查 ModelBase.php
<?php
class ModelBase
{public $pdo = NULL;public function __construct(){$this->_connect();}private function _connect(){$host = DB_HOST;$db = DB_DATABASE;$user = DB_USER;$pass = DB_PWD;$dsn = "mysql:host=$host;dbname=$db;charset=utf8";try {$this->pdo = new PDO($dsn, $user, $pass, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);} catch (PDOException $e) {die("數(shù)據(jù)庫(kù)連接失敗: " . $e->getMessage());}}public function insert($table, $data) {// 準(zhǔn)備SQL語(yǔ)句$fields = implode(', ', array_keys($data));$values = ':' . implode(', :', array_keys($data));$sql = "INSERT INTO $table ($fields) VALUES ($values)";// 綁定參數(shù)并執(zhí)行SQL語(yǔ)句$stmt = $this->pdo->prepare($sql);foreach ($data as $key => $value) {$stmt->bindValue(':' . $key, $value);}return $stmt->execute();}public function delete($table, $condition, $params = []){$sql = "DELETE FROM $table WHERE $condition";$stmt = $this->pdo->prepare($sql);foreach ($params as $key => $value) {$stmt->bindValue(":$key", $value);}$stmt->execute();return $stmt->rowCount();}public function update($table, $data, $condition, $params = []){$sql = "UPDATE $table SET ";$set = [];foreach ($data as $key => $value) {$set[] = "$key = :$key";}$sql .= implode(', ', $set);$sql .= " WHERE $condition";$stmt = $this->pdo->prepare($sql);foreach ($data as $key => $value) {$stmt->bindValue(":$key", $value);}foreach ($params as $key => $value) {$stmt->bindValue($key, $value);}$stmt->execute();return $stmt->rowCount();}public function select($table, $condition = '', $params = []){$sql = "SELECT * FROM $table";if ($condition) {$sql .= " WHERE $condition";}$stmt = $this->pdo->prepare($sql);foreach ($params as $key => $value) {$stmt->bindValue($key, $value);}$stmt->execute();return $stmt->fetchAll(PDO::FETCH_ASSOC);}
}
5、indexCrl.php控制器調(diào)用
class indexCrl{public function index(){$model= new ModelBase();// 插入數(shù)據(jù)$data = ['age' => 12,'name' => '小明',];$model->insert('test', $data);// 查詢數(shù)據(jù)$result = $model->select('test', 'name = :value', [':value' => '小明']);var_dump($result);// 更新數(shù)據(jù)$data = ['age' => '13',];// 更新數(shù)據(jù)$model->update('test', $data, 'id = :id', [':id' => 1]);// 刪除數(shù)據(jù)$model->delete('test', 'id = :id', ['id' => 1]);}
}
5、完整KJ.php代碼
<?phpfinal class KJ{public static function run(){//定義常量self::_set_const();//創(chuàng)建模塊目錄self::_mk_module();//類自動(dòng)加載spl_autoload_register(array(__CLASS__,'_autoload'));//運(yùn)行框架self::_run();}//運(yùn)行控制器中方法public static function _run(){$c=strtolower(isset($_GET['c'])?$_GET['c']:'index');$a=strtolower(isset($_GET['a'])?$_GET['a']:'index');$c.='Crl';if(!class_exists($c)){die("控制器".$c."不存在");}$obj=new $c();if(!method_exists($obj,$a)){die("控制器".$c."下".$a."方法不存在");}$obj->$a();}//自動(dòng)加載文件public static function _autoload($className){switch ($className){//自動(dòng)加載控制器case substr($className,-3)=='Crl':$path= CONTROLLER.'/'.$className.'.php';if(is_file($path)) include $path;break;//自動(dòng)加載基類case substr($className,-4)=='Base':$path= KJ_CORE.'/base/'.$className.'.php';if(is_file($path)) include $path;break;default :break;}}//定義常量public static function _set_const(){//獲取框架核心路徑 都替換/以便兼容linux$path=str_replace('\\','//',__FILE__);//定義常量define("KJ_CORE",dirname($path)); //框架核心路徑define('ROOT_PATH',dirname(KJ_CORE));//項(xiàng)目根目錄define('MODULE_PATH',ROOT_PATH.'/'.MODULE);//模塊define('CONTROLLER',MODULE_PATH.'/controller');//定義控制器define('MODEL',MODULE_PATH.'/model');//定義模型define('VIEW',MODULE_PATH.'/view');//定義顯示成}//自動(dòng)創(chuàng)建模塊目錄public static function _mk_module(){$arr=[MODULE_PATH,CONTROLLER,MODEL,VIEW,];foreach ($arr as $v){is_dir($v) || mkdir($v,0777,true);}}}
KJ::run();