国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > ThinkPHP > 正文

thinkPHP5實現數據庫添加內容的方法

2024-09-09 15:20:26
字體:
來源:轉載
供稿:網友

本文實例講述了thinkPHP5實現數據庫添加內容的方法。分享給大家供大家參考,具體如下:

面對一個新框架安裝好了一般不知道要干啥。那就先做一個寫入功能先。

先做好準備工作先,首先要連接上數據庫。

配置文件在application下的database.php里.

  1. return [ 
  2.   // 數據庫類型 
  3.   'type'      => 'mysql'
  4.   // 服務器地址 
  5.   'hostname'    => '127.0.0.1'
  6.   // 數據庫名 
  7.   'database'    => 'shoptest'
  8.   // 用戶名 
  9.   'username'    => 'root'
  10.   // 密碼 
  11.   'password'    => ''
  12.   // 端口 
  13.   'hostport'    => '3306'
  14.   // 連接dsn 
  15.   'dsn'       => ''
  16.   // 數據庫連接參數 
  17.   'params'     => [], 
  18.   // 數據庫編碼默認采用utf8 
  19.   'charset'     => 'utf8'
  20.   // 數據庫表前綴 
  21.   'prefix'     => ''
  22.   // 數據庫調試模式 
  23.   'debug'      => true, 
  24.   // 數據庫部署方式:0 集中式(單一服務器),1 分布式(主從服務器) 
  25.   'deploy'     => 0, 
  26.   // 數據庫讀寫是否分離 主從式有效 
  27.   'rw_separate'   => false, 
  28.   // 讀寫分離后 主服務器數量 
  29.   'master_num'   => 1, 
  30.   // 指定從服務器序號 
  31.   'slave_no'    => ''
  32.   // 是否嚴格檢查字段是否存在 
  33.   'fields_strict'  => true, 
  34.   // 數據集返回類型 
  35.   'resultset_type' => 'array'
  36.   // 自動寫入時間戳字段 
  37.   'auto_timestamp' => false, 
  38.   // 時間字段取出后的默認時間格式 
  39.   'datetime_format' => 'Y-m-d H:i:s'
  40.   // 是否需要進行SQL性能分析 
  41.   'sql_explain'   => false, 
  42. ]; 

設置好之后先放著,先建立一個控制器

默認下載的集合中,application文件夾里有一個index的文件夾。

里面是用來存放控制器,類和模板的文件夾,名字可以修改。

如果用過3.2的就很好理解了,就是相當于原來的home文件。

在這個文件夾里先創建三個文件夾:controller,model,view

然后再controller文件夾里新建一個index.php的文件(其實默認就有一個)。

在class類里寫入這樣的代碼

  1. public function indexs() 
  2.     return '我打開控制器了'

在網址欄輸入 服務器名/index/index/indexs

可以看見一行文字。

加下來先引入模板。

先添加use thinkView;引入模板庫。

$view = new View;

return $view->fetch('模板名');

那么模板放在哪里。controller文件夾有一個view文件夾

如果你直接把模板文件拖進去的話會報錯。

thinkPHP5實現數據庫添加內容的方法

看報錯路徑的后半部分。/application/indexviewindexadda.html

application/index/view這個都能找到

接下來又是一個文件夾的名字和文件名字。

這個文件夾對應著的是控制器的名字,也就是說要建立一個對應的文件夾。再把模板拖進去即可調用。當然,一個完整的框架不會只有這一個方法。其他的細節以后在研究。

表單提交的常用的兩個寫法,input('post.xxx')指的是獲取post值。

  1. //調用Db類 
  2. use think/Db; 
  3. $data = ['title' => input('post.title'), 'content' => input('post.title')]; 
  4. Db::table('blogmsg')->insert($data); 
  5. //建立model的寫法 
  6. $mod = new /app/index/model/Blogmsg; 
  7. $mod->title = input('post.title'); 
  8. $mod->content = input('post.content'); 
  9. $mod->save(); 
  10. echo $mod->id; 

相對而言,個人比較喜歡這樣的寫法。使用Request來完成添加。(對以后使用laravel有好處)

  1. //引入Request。 
  2. use think/Request; 
  3. public function add(Request $req){ 
  4.   //如果添加的內容需要處理,先單獨取出然后賦值進去($req->post('title')可以獲取其中的值) 
  5.   $a = rtrim($req->post('title'),' '); 
  6.   $req->post(['title'=>$a]); 
  7.   //準備添加 
  8.   $mod = new /app/index/model/Blogmsg; 
  9.   //allowField可以選擇只添加哪些字段。 
  10.   $mod->allowField(['title','content'])->save($req->post()); 
  11.   //獲取返回的主鍵 
  12.   echo $mod->id; 

說道添加數據,那么肯定需要自動驗證了。

這次的自動驗證可以單獨的寫一個文件。在index文件夾內創建一個Validate文件夾,內部創建一個和Model文件夾內相同名字的php文件。方便使用。

樣本:

  1. namespace app/index/validate; 
  2. use think/Validate; 
  3. class Blogmsg extends Validate 
  4.   //寫規則 
  5.   protected $rule = [ 
  6.     'title' => 'require|max:25'
  7.     'content' => 'require|max:255'
  8.   ]; 
  9.   //寫報錯返回信息 
  10.   protected $message = [ 
  11.     'title.require' => '必須填寫'
  12.     'title.max' => '不能超過25個字符'
  13.     'content.require' => '必須填寫'
  14.     'content.max' => '不能超過255個字符'
  15.   ];//Vevb.com 
  16.   protected $scene = [ 
  17.     'add' => ['title','content'], 
  18.     'edit' => ['title','content'], 
  19.   ]; 

然后控制器部分的改動:

  1. $a = $mod->validate(true)->allowField(['title','content'])->save($req->post()); 
  2. if(false === $a){ 
  3.   // 驗證失敗 輸出錯誤信息 
  4.   dump($mod->getError()); 
  5.   die

最后做一個防止重復提交以及遠程提交的表單令牌功能:在模板中的form表單里加入{:token()},然后再驗證的規則里做一下修改,驗證規則加一個token。如下:

'title' => 'require|max:25|token',

至此,文章添加部分告一段落。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 阳信县| 从化市| 措勤县| 如皋市| 利川市| 泸溪县| 新乡市| 湛江市| 唐山市| 分宜县| 比如县| 沙坪坝区| 九台市| 安福县| 如皋市| 深泽县| 嘉善县| 普安县| 会理县| 祁连县| 浠水县| 敦煌市| 新宾| 南宁市| 林州市| 玛多县| 闽侯县| 罗源县| 柏乡县| 疏附县| 海伦市| 加查县| 桑日县| 牙克石市| 柏乡县| 阿克苏市| 积石山| 平泉县| 巩义市| 清河县| 垣曲县|