欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

thinkPHP5實(shí)現(xiàn)數(shù)據(jù)庫(kù)添加內(nèi)容的方法

 更新時(shí)間:2017年10月25日 12:18:56   作者:booljiaoyu  
這篇文章主要介紹了thinkPHP5實(shí)現(xiàn)數(shù)據(jù)庫(kù)添加內(nèi)容的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了thinkPHP5數(shù)據(jù)庫(kù)的配置、模型、控制器的使用及數(shù)據(jù)插入相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了thinkPHP5實(shí)現(xiàn)數(shù)據(jù)庫(kù)添加內(nèi)容的方法。分享給大家供大家參考,具體如下:

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

先做好準(zhǔn)備工作先,首先要連接上數(shù)據(jù)庫(kù)。

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

return [
  // 數(shù)據(jù)庫(kù)類型
  'type'      => 'mysql',
  // 服務(wù)器地址
  'hostname'    => '127.0.0.1',
  // 數(shù)據(jù)庫(kù)名
  'database'    => 'shoptest',
  // 用戶名
  'username'    => 'root',
  // 密碼
  'password'    => '',
  // 端口
  'hostport'    => '3306',
  // 連接dsn
  'dsn'       => '',
  // 數(shù)據(jù)庫(kù)連接參數(shù)
  'params'     => [],
  // 數(shù)據(jù)庫(kù)編碼默認(rèn)采用utf8
  'charset'     => 'utf8',
  // 數(shù)據(jù)庫(kù)表前綴
  'prefix'     => '',
  // 數(shù)據(jù)庫(kù)調(diào)試模式
  'debug'      => true,
  // 數(shù)據(jù)庫(kù)部署方式:0 集中式(單一服務(wù)器),1 分布式(主從服務(wù)器)
  'deploy'     => 0,
  // 數(shù)據(jù)庫(kù)讀寫是否分離 主從式有效
  'rw_separate'   => false,
  // 讀寫分離后 主服務(wù)器數(shù)量
  'master_num'   => 1,
  // 指定從服務(wù)器序號(hào)
  'slave_no'    => '',
  // 是否嚴(yán)格檢查字段是否存在
  'fields_strict'  => true,
  // 數(shù)據(jù)集返回類型
  'resultset_type' => 'array',
  // 自動(dòng)寫入時(shí)間戳字段
  'auto_timestamp' => false,
  // 時(shí)間字段取出后的默認(rèn)時(shí)間格式
  'datetime_format' => 'Y-m-d H:i:s',
  // 是否需要進(jìn)行SQL性能分析
  'sql_explain'   => false,
];

設(shè)置好之后先放著,先建立一個(gè)控制器

默認(rèn)下載的集合中,application文件夾里有一個(gè)index的文件夾。

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

如果用過(guò)3.2的就很好理解了,就是相當(dāng)于原來(lái)的home文件。

在這個(gè)文件夾里先創(chuàng)建三個(gè)文件夾

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

在class類里寫入這樣的代碼

public function indexs()
{
    return '我打開控制器了';
}

在網(wǎng)址欄輸入 服務(wù)器名/index/index/indexs

可以看見一行文字。

加下來(lái)先引入模板。

先添加use think\View;引入模板庫(kù)。

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

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

如果你直接把模板文件拖進(jìn)去的話會(huì)報(bào)錯(cuò)。

看報(bào)錯(cuò)路徑的后半部分。/application/index\view\index\adda.html

application/index/view這個(gè)都能找到

接下來(lái)又是一個(gè)文件夾的名字和文件名字。

這個(gè)文件夾對(duì)應(yīng)著的是控制器的名字,也就是說(shuō)要建立一個(gè)對(duì)應(yīng)的文件夾。再把模板拖進(jìn)去即可調(diào)用。當(dāng)然,一個(gè)完整的框架不會(huì)只有這一個(gè)方法。其他的細(xì)節(jié)以后在研究。

表單提交的常用的兩個(gè)寫法,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;

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

//引入Request。
use think\Request;
public function add(Request $req){
  //如果添加的內(nèi)容需要處理,先單獨(dú)取出然后賦值進(jìn)去($req->post('title')可以獲取其中的值)
  $a = rtrim($req->post('title'),' ');
  $req->post(['title'=>$a]);
  //準(zhǔn)備添加
  $mod = new \app\index\model\Blogmsg;
  //allowField可以選擇只添加哪些字段。
  $mod->allowField(['title','content'])->save($req->post());
  //獲取返回的主鍵
  echo $mod->id;
}

說(shuō)道添加數(shù)據(jù),那么肯定需要自動(dòng)驗(yàn)證了。

這次的自動(dòng)驗(yàn)證可以單獨(dú)的寫一個(gè)文件。在index文件夾內(nèi)創(chuàng)建一個(gè)Validate文件夾,內(nèi)部創(chuàng)建一個(gè)和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',
  ];
  //寫報(bào)錯(cuò)返回信息
  protected $message = [
    'title.require' => '必須填寫',
    'title.max' => '不能超過(guò)25個(gè)字符',
    'content.require' => '必須填寫',
    'content.max' => '不能超過(guò)255個(gè)字符',
  ];
  protected $scene = [
    'add' => ['title','content'],
    'edit' => ['title','content'],
  ];
}

然后控制器部分的改動(dòng)

$a = $mod->validate(true)->allowField(['title','content'])->save($req->post());
if(false === $a){
  // 驗(yàn)證失敗 輸出錯(cuò)誤信息
  dump($mod->getError());
  die;
}

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

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

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

更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。

希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • PHP創(chuàng)建自己的Composer包方法

    PHP創(chuàng)建自己的Composer包方法

    這篇文章主要介紹了PHP創(chuàng)建自己的Composer包方法
    2018-04-04
  • thinkPHP框架對(duì)接支付寶即時(shí)到賬接口回調(diào)操作示例

    thinkPHP框架對(duì)接支付寶即時(shí)到賬接口回調(diào)操作示例

    這篇文章主要介紹了thinkPHP框架對(duì)接支付寶即時(shí)到賬接口回調(diào)操作,結(jié)合實(shí)例形式分析了thinkPHP針對(duì)支付寶接口回調(diào)操作的原理與具體操作步驟,需要的朋友可以參考下
    2016-11-11
  • laravel validate 設(shè)置為中文的例子(驗(yàn)證提示為中文)

    laravel validate 設(shè)置為中文的例子(驗(yàn)證提示為中文)

    今天小編就為大家分享一篇laravel validate 設(shè)置為中文的例子(驗(yàn)證提示為中文),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-09-09
  • php 使用預(yù)處理語(yǔ)句操作數(shù)據(jù)庫(kù)

    php 使用預(yù)處理語(yǔ)句操作數(shù)據(jù)庫(kù)

    今天這篇文章的內(nèi)容其實(shí)也是非?;A(chǔ)的內(nèi)容,不過(guò)在現(xiàn)代化的開發(fā)中,大家都使用框架,已經(jīng)很少人會(huì)去自己封裝或者經(jīng)常寫底層的數(shù)據(jù)庫(kù)操作代碼了。所以這回我們就來(lái)復(fù)習(xí)一下數(shù)據(jù)庫(kù)中相關(guān)擴(kuò)展中的預(yù)處理語(yǔ)句內(nèi)容。
    2021-06-06
  • ThinkPHP3.1新特性之Action參數(shù)綁定

    ThinkPHP3.1新特性之Action參數(shù)綁定

    ThinkPHP3.1版的Action參數(shù)綁定功能提供了URL變量和操作方法的參數(shù)綁定支持,這一功能可以使得你的操作方法定義和參數(shù)獲取更加清晰,也便于跨模塊調(diào)用操作方法,需要的朋友可以參考下
    2014-06-06
  • CI(CodeIgniter)框架配置

    CI(CodeIgniter)框架配置

    今天研究了下CI框架的說(shuō)明文檔,打算在下次項(xiàng)目中用用看。先把今天看完的內(nèi)容整理整理,基本配置非常簡(jiǎn)單,好像在配置方面 在沒有比ci框架簡(jiǎn)便的了。。
    2014-06-06
  • php像數(shù)組一樣存取和修改字符串字符

    php像數(shù)組一樣存取和修改字符串字符

    PHP中字符串中的字符可以通過(guò)一個(gè)以0為開始的,用類似數(shù)組結(jié)構(gòu)中的方括號(hào)包含對(duì)應(yīng)的數(shù)字來(lái)查找和修改,
    2014-03-03
  • php微信開發(fā)之關(guān)注事件

    php微信開發(fā)之關(guān)注事件

    這篇文章主要為大家詳細(xì)介紹了php微信開發(fā)之關(guān)注事件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • ThinkPHP提示錯(cuò)誤Fatal error: Allowed memory size的解決方法

    ThinkPHP提示錯(cuò)誤Fatal error: Allowed memory size的解決方法

    這篇文章主要介紹了ThinkPHP提示錯(cuò)誤Fatal error: Allowed memory size的解決方法,分析了該錯(cuò)誤的原因與具體的解決方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • thinkphp5.1 框架導(dǎo)入/導(dǎo)出excel文件操作示例

    thinkphp5.1 框架導(dǎo)入/導(dǎo)出excel文件操作示例

    這篇文章主要介紹了thinkphp5.1 框架導(dǎo)入/導(dǎo)出excel文件操作,結(jié)合實(shí)例形式分析了thinkphp5.1 框架導(dǎo)入/導(dǎo)出excel文件具體操作實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2020-05-05

最新評(píng)論