thinkPHP5實現(xiàn)數(shù)據(jù)庫添加內(nèi)容的方法
本文實例講述了thinkPHP5實現(xiàn)數(shù)據(jù)庫添加內(nèi)容的方法。分享給大家供大家參考,具體如下:
面對一個新框架安裝好了一般不知道要干啥。那就先做一個寫入功能先。
先做好準備工作先,首先要連接上數(shù)據(jù)庫。
配置文件在application下的database.php里
return [ // 數(shù)據(jù)庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '127.0.0.1', // 數(shù)據(jù)庫名 'database' => 'shoptest', // 用戶名 'username' => 'root', // 密碼 'password' => '', // 端口 'hostport' => '3306', // 連接dsn 'dsn' => '', // 數(shù)據(jù)庫連接參數(shù) 'params' => [], // 數(shù)據(jù)庫編碼默認采用utf8 'charset' => 'utf8', // 數(shù)據(jù)庫表前綴 'prefix' => '', // 數(shù)據(jù)庫調(diào)試模式 'debug' => true, // 數(shù)據(jù)庫部署方式:0 集中式(單一服務器),1 分布式(主從服務器) 'deploy' => 0, // 數(shù)據(jù)庫讀寫是否分離 主從式有效 'rw_separate' => false, // 讀寫分離后 主服務器數(shù)量 'master_num' => 1, // 指定從服務器序號 'slave_no' => '', // 是否嚴格檢查字段是否存在 'fields_strict' => true, // 數(shù)據(jù)集返回類型 'resultset_type' => 'array', // 自動寫入時間戳字段 'auto_timestamp' => false, // 時間字段取出后的默認時間格式 'datetime_format' => 'Y-m-d H:i:s', // 是否需要進行SQL性能分析 'sql_explain' => false, ];
設置好之后先放著,先建立一個控制器
默認下載的集合中,application文件夾里有一個index的文件夾。
里面是用來存放控制器,類和模板的文件夾,名字可以修改。
如果用過3.2的就很好理解了,就是相當于原來的home文件。
在這個文件夾里先創(chuàng)建三個文件夾
然后再controller文件夾里新建一個index.php的文件(其實默認就有一個)。
在class類里寫入這樣的代碼
public function indexs() { return '我打開控制器了'; }
在網(wǎng)址欄輸入 服務器名/index/index/indexs
可以看見一行文字。
加下來先引入模板。
先添加use think\View;引入模板庫。
$view = new View; return $view->fetch('模板名');
那么模板放在哪里。controller文件夾有一個view文件夾
如果你直接把模板文件拖進去的話會報錯。
看報錯路徑的后半部分。/application/index\view\index\adda.html
application/index/view這個都能找到
接下來又是一個文件夾的名字和文件名字。
這個文件夾對應著的是控制器的名字,也就是說要建立一個對應的文件夾。再把模板拖進去即可調(diào)用。當然,一個完整的框架不會只有這一個方法。其他的細節(jié)以后在研究。
表單提交的常用的兩個寫法,input('post.xxx')指的是獲取post值。
//調(diào)用Db類 use think\Db; $data = ['title' => input('post.title'), 'content' => input('post.title')]; Db::table('blogmsg')->insert($data); //建立model的寫法 $mod = new \app\index\model\Blogmsg; $mod->title = input('post.title'); $mod->content = input('post.content'); $mod->save(); echo $mod->id;
相對而言,個人比較喜歡這樣的寫法。使用Request來完成添加。(對以后使用laravel有好處)
//引入Request。 use think\Request; public function add(Request $req){ //如果添加的內(nèi)容需要處理,先單獨取出然后賦值進去($req->post('title')可以獲取其中的值) $a = rtrim($req->post('title'),' '); $req->post(['title'=>$a]); //準備添加 $mod = new \app\index\model\Blogmsg; //allowField可以選擇只添加哪些字段。 $mod->allowField(['title','content'])->save($req->post()); //獲取返回的主鍵 echo $mod->id; }
說道添加數(shù)據(jù),那么肯定需要自動驗證了。
這次的自動驗證可以單獨的寫一個文件。在index文件夾內(nèi)創(chuàng)建一個Validate文件夾,內(nèi)部創(chuàng)建一個和Model文件夾內(nèi)相同名字的php文件。方便使用。
樣本
namespace app\index\validate; use think\Validate; class Blogmsg extends Validate { //寫規(guī)則 protected $rule = [ 'title' => 'require|max:25', 'content' => 'require|max:255', ]; //寫報錯返回信息 protected $message = [ 'title.require' => '必須填寫', 'title.max' => '不能超過25個字符', 'content.require' => '必須填寫', 'content.max' => '不能超過255個字符', ]; protected $scene = [ 'add' => ['title','content'], 'edit' => ['title','content'], ]; }
然后控制器部分的改動
$a = $mod->validate(true)->allowField(['title','content'])->save($req->post()); if(false === $a){ // 驗證失敗 輸出錯誤信息 dump($mod->getError()); die; }
最后做一個防止重復提交以及遠程提交的表單令牌功能:在模板中的form表單里加入{:token()},然后再驗證的規(guī)則里做一下修改,驗證規(guī)則加一個token。如下:
'title' => 'require|max:25|token',
至此,文章添加部分告一段落。
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。
- tp5.1框架數(shù)據(jù)庫子查詢操作實例分析
- tp5.1 框架數(shù)據(jù)庫常見操作詳解【添加、刪除、更新、查詢】
- tp5.1 框架數(shù)據(jù)庫高級查詢技巧實例總結(jié)
- ThinkPHP5.1框架數(shù)據(jù)庫鏈接和增刪改查操作示例
- PHP利用pdo_odbc實現(xiàn)連接數(shù)據(jù)庫示例【基于ThinkPHP5.1搭建的項目】
- PHP7使用ODBC連接SQL Server2008 R2數(shù)據(jù)庫示例【基于thinkPHP5.1框架】
- ThinkPHP實現(xiàn)多數(shù)據(jù)庫連接的解決方法
- thinkPHP5實現(xiàn)的查詢數(shù)據(jù)庫并返回json數(shù)據(jù)實例
- tp5(thinkPHP5)框架數(shù)據(jù)庫Db增刪改查常見操作總結(jié)
- tp5(thinkPHP5)框架實現(xiàn)多數(shù)據(jù)庫查詢的方法
- tp5(thinkPHP5)操作mongoDB數(shù)據(jù)庫的方法
- tp5.1 框架數(shù)據(jù)庫-數(shù)據(jù)集操作實例分析
相關(guān)文章
thinkPHP框架對接支付寶即時到賬接口回調(diào)操作示例
這篇文章主要介紹了thinkPHP框架對接支付寶即時到賬接口回調(diào)操作,結(jié)合實例形式分析了thinkPHP針對支付寶接口回調(diào)操作的原理與具體操作步驟,需要的朋友可以參考下2016-11-11laravel validate 設置為中文的例子(驗證提示為中文)
今天小編就為大家分享一篇laravel validate 設置為中文的例子(驗證提示為中文),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09ThinkPHP3.1新特性之Action參數(shù)綁定
ThinkPHP3.1版的Action參數(shù)綁定功能提供了URL變量和操作方法的參數(shù)綁定支持,這一功能可以使得你的操作方法定義和參數(shù)獲取更加清晰,也便于跨模塊調(diào)用操作方法,需要的朋友可以參考下2014-06-06ThinkPHP提示錯誤Fatal error: Allowed memory size的解決方法
這篇文章主要介紹了ThinkPHP提示錯誤Fatal error: Allowed memory size的解決方法,分析了該錯誤的原因與具體的解決方法,具有一定參考借鑒價值,需要的朋友可以參考下2015-02-02thinkphp5.1 框架導入/導出excel文件操作示例
這篇文章主要介紹了thinkphp5.1 框架導入/導出excel文件操作,結(jié)合實例形式分析了thinkphp5.1 框架導入/導出excel文件具體操作實現(xiàn)技巧與相關(guān)注意事項,需要的朋友可以參考下2020-05-05