91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

thinkPHP5如何實現數據庫添加內容

發布時間:2021-07-08 09:17:21 來源:億速云 閱讀:218 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關thinkPHP5如何實現數據庫添加內容,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

具體如下:

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

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

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

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

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

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

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

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

在這個文件夾里先創建三個文件夾

thinkPHP5如何實現數據庫添加內容

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

在class類里寫入這樣的代碼

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

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

可以看見一行文字。

加下來先引入模板。

先添加use think\View;引入模板庫。

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

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

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

thinkPHP5如何實現數據庫添加內容

看報錯路徑的后半部分。/application/index\view\index\adda.html

application/index/view這個都能找到

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

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

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

//調用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){
  //如果添加的內容需要處理,先單獨取出然后賦值進去($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;
}

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

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

樣本

namespace app\index\validate;
use think\Validate;
class Blogmsg extends Validate
{
  //寫規則
  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()},然后再驗證的規則里做一下修改,驗證規則加一個token。如下:

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

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

關于“thinkPHP5如何實現數據庫添加內容”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

景谷| 虹口区| 抚松县| 永康市| 浪卡子县| 拜城县| 遵义县| 吴川市| 双牌县| 乐安县| 沽源县| 武山县| 若羌县| 兴国县| 宜川县| 慈利县| 佛学| 文登市| 城固县| 体育| 泗水县| 旬邑县| 喀喇沁旗| 栾川县| 西乡县| 南郑县| 冀州市| 昌黎县| 玉田县| 长顺县| 施秉县| 海口市| 浦北县| 芜湖市| 云林县| 延川县| 蒙城县| 天峻县| 铅山县| 宜君县| 白城市|