ThinkPHP學習筆記(八)一個使用者增刪改查的小例子
主要是action檔案的方法實現:
conf檔案
'配置值'//因為開啟URL重新不論是被重寫的還是沒被重寫的,都可以通過原有路徑訪問//如果想開啟rewrite模式,需要做如下操作//1.query伺服器已經開啟了Apache的rewrite模組//LoadModule rewrite_module modules/mod_rewrite.so//2.在與主入口檔案,統計目錄下,建立一個.htaccess(vi:save .htaccess;記事本:".htaccess")//如果選用模式2(rewrite)會加大伺服器的消耗'URL_MODEL'=>1,'URL_PATNINFO_MODEL'=>2,//pathinfo包含兩類//1普通模式:加上m和a:循序關聯性可以發生變化//http://localhost/MyThinkPHP/admin.php/m/index/a/index//傳值//http://localhost/MyThinkPHP/admin.php/m/index/a/index/username/zhangsan/password/password//2智能識別模組操作(預設模式就是智能識別)//http://localhost/MyThinkPHP/admin.php/index/index//傳值//http://localhost/MyThinkPHP/admin.php/index/index/username/zhangsan/password/password//修改URL分隔字元//'URL_PATHINFO_DEPR'=>'-',//修改模板左右定界符'TMPL_L_DELIM'=>'',//********************************非常華麗的分割線**************************************//開啟偵錯模式//1.類比linux系統來識別大小寫//2.方法名的大小寫與模板檔案大小寫有關//注意:在分幀頁面中,不能有body,但是app_dubug的資訊是屬於body體中的內容'APP_DEBUG'=>true,//可以自訂頁面的Trace資訊//設定檔路徑的Trace資訊配置在Thinkphp/Tpl下的pageTrace.tpl.php//自訂方式://'TMPL_TRACE_FILE'=>APP_PATH.'/Public/trace.php',//或者自訂個trace.php頁面放入當前的Conf檔案夾中//預設調試檔案的位置://ThinkPHP/Common/debug.php//不快取資料庫欄位;如果開啟,再修改可以將Runtim/Data下面的檔案進行刪除//'DB_FIELDS_CACHE'=> false,//可以自訂的debug.php放入當前的Conf檔案夾中//先將APP_DEBUG設定為false然後在加入下面參數//'APP_DEBUG'=>false,//顯示運行次此頁面需要的時間//'SHOW_RUN_TIME'=>true,//顯示詳細的已耗用時間(基於SHOW_RUN_TIME)//'SHOW_ADV_TIME'=>true,//顯示資料庫的操作次數(基於SHOW_RUN_TIME)//'SHOW_DB_TIMES'=>true,//顯示緩衝的操作次數(基於SHOW_RUN_TIME)//'SHOW_CACHE_TIMES'=>true,//顯示記憶體的開銷(基於SHOW_RUN_TIME)//'SHOW_USE_MEM'=>true,//設定模板//'DEFAULT_THEME'=>'default',//Tloglog類:lib/Think/Core/log.class.php//開啟日誌//'LOG_RECORD'=>true,//Tloglog類:lib/Think/Core/log.class.php中有處理層級,可以選擇性的加入//'LOG_RECORD_LEVEL'=>array('EMERG','ALERT'),//由於資料庫的連結需要多重專案來使用可以在一個頁面中定義個公用的配置項,返回一個array數組//串連資料庫設定//'DB_TYPE'=>'mysql',//'DB_HOST'=>'localhost',//'DB_NAME'=>'hibernate',//'DB_USER'=>'root',//'DB_PWD'=>'root',////如果未修改可以不用填寫//'DB_POST'=>'3306',//'DB_PREFIX'=>'tb_',//令牌相關操作//'TOKEN_ON'=>true,//'TOKEN_NAME'=>'__hash__',//'TOKEN_TYPE'=>'md5',);$databaseConfig = include './database.php';//串連返回之後並不好用,只能直接返回自訂的配置資訊,可能是我的配置有問題,先留下這個問題return array_merge($selfConfig,$databaseConfig);//return $selfConfig;?>
外部引入的資料庫連結檔案和配置
1, // 資料庫部署方式:0 集中式(單一伺服器),1 分布式(主從伺服器)//2.必須要做資料庫伺服器中進行相應的配置//百度設定資料庫叢集//3.讀寫分離(預設是第一台伺服器是寫入伺服器,其他的伺服器的讀伺服器)// 'DB_RW_SEPARATE'=> true,// 資料庫讀寫是否分離 主從式有效//ThinkPHP預設的字元集是utf8,不要加中劃線- //'DB_FIELDTYPE_CHECK'=> false, // 是否進列欄位類型檢查// 'DB_FIELDS_CACHE' => true, // 啟用欄位緩衝// 'DB_CHARSET' => 'utf8',// 資料庫編碼預設採用utf8 //由於資料庫的連結需要多重專案來使用可以在一個頁面中定義個公用的配置項,返回一個array數組//ThinkPHP中的db目錄:Lib/Think/Db/Db.class.php//串連資料庫設定'DB_TYPE'=>'mysql','DB_HOST'=>'localhost',//設定主從資料時用//'DB_HOST'=>'localhost,192.168.123.1','DB_NAME'=>'thinkphp',//設定主從資料時若名字不同//'DB_NAME'=>'hibernate,ant,thinkphp','DB_USER'=>'root','DB_PWD'=>'root',//如果未修改可以不用填寫'DB_POST'=>'3306','DB_PREFIX'=>'tb_',);?>
action
select();$this->assign('title','thinkphp示範');$this->assign('alist',$list);$this->display();}public function add(){//D是需要些Model的,M不需要寫$user=D('User');if ($vo=$user->create()){echo 'create成功';$user->password=md5($user->password);$user->createtime=time();//擴充函數需要進載入之後使用load('extend');$user->createip=get_client_ip();if ($user->add()){$this->success("使用者註冊成功");}else{$this->error($user->getError());}}else{echo 'create失敗';$this->error($user->getError());}}public function del(){//D是需要些Model的,M不需要寫$user=D('User');if ($vo=$user->delete($_GET['id'])){$this->success("使用者刪除成功");}else{$this->error($user->getError());}}public function edit(){$user=M('user');$id=$_GET['id'];$list=$user->where("id=$id")->find();$this->assign('user',$list);$this->assign('title','編輯使用者');$this->display();}public function update(){$user=M('user');if ($vo=$user->create()){if ($lineNum=$user->save()){$this->success("使用者更新成功");}else{$this->error($user->getError());}}else{$this->error($user->getError());}}}?>
model
html:
index.html
<!--{$title}-->ID使用者名稱IP">刪除">編輯
edit.html
<!--{$title}-->