ホームページ バックエンド開発 PHPチュートリアル thinkPHP5 はデータベースにコンテンツを追加するメソッドを実装します

thinkPHP5 はデータベースにコンテンツを追加するメソッドを実装します

Jun 07, 2018 pm 02:44 PM
thinkphp5 データベース

この記事では、thinkPHP5 でデータベースにコンテンツを追加する方法を主に紹介し、thinkPHP5 データベースの構成、モデル、コントローラーの使用、およびデータ挿入関連の操作スキルを詳細に分析します。必要な方は参考にしてください。次の

この記事の例では、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,
];
ログイン後にコピー

設定後はそのままにして、最初にコントローラーを作成します

デフォルトのダウンロードされたコレクションでは、アプリケーション フォルダー内にインデックス フォルダーがあります。

コントローラー、クラス、テンプレートを格納するフォルダーであり、名前は変更可能です。

3.2を使ったことがある方ならわかりやすいと思いますが、オリジナルのホームファイルに相当します。

最初にこのフォルダーに 3 つのフォルダーを作成します

#次に、コントローラー フォルダーに新しいindex.php ファイルを作成します (実際にはデフォルトで 1 つあります)。 。

クラス class に次のようなコードを記述します

public function indexs()
{
    return '我打开控制器了';
}
ログイン後にコピー

URL バーにサーバー名/インデックス/インデックス/インデックスを入力します

テキスト行が表示されます。

それを追加して、最初にテンプレートを紹介します。

まず use think\View を追加し、テンプレート ライブラリを導入します。

$view = new View;
return $view->fetch('模板名');
ログイン後にコピー

それでは、テンプレートをどこに置くかです。コントローラ フォルダにはビュー フォルダがあります。

テンプレート ファイルを直接そこにドラッグすると、エラーが報告されます。

#エラー パスの後半を見てください。 /application/index\view\index\adda.html

application/index/view が見つかります

次に、別のフォルダー名とファイル名があります。

このフォルダーはコントローラーの名前に対応するため、対応するフォルダーを作成する必要があります。次に、テンプレートをドラッグして呼び出します。もちろん、完全なフレームワークにはこの方法だけが含まれるわけではありません。その他の詳細については後で検討します。

フォーム送信の記述で一般的に使用される 2 つの方法、input('post.xxx') は投稿値の取得を指します。

//调用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;
ログイン後にコピー

比較的、個人的にはこの書き方の方が好みです。リクエストを使用して追加を完了します。 (今後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;
}
ログイン後にコピー

# #最後に、繰り返しの送信とリモート送信を防ぐためのフォーム トークン関数を作成します。テンプレート内のフォーム フォームに {:token()} を追加し、検証ルールを変更して、検証ルールにトークンを追加します。以下の通り:

'title' => 'require|max:25|token',
ログイン後にコピー

これで記事の追加は終了となります。

以上がこの記事の全内容です。読んでいただきありがとうございます。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

thinkphp3.2.3 バージョンのデータベースの追加、削除、変更、およびクエリ実装コード


PHP は送信とJSON 質問の受信


#

以上がthinkPHP5 はデータベースにコンテンツを追加するメソッドを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Go 言語はデータベースの追加、削除、変更、クエリ操作をどのように実装しますか? Go 言語はデータベースの追加、削除、変更、クエリ操作をどのように実装しますか? Mar 27, 2024 pm 09:39 PM

Go 言語は、効率的かつ簡潔で習得が容易なプログラミング言語であり、同時プログラミングやネットワーク プログラミングに優れているため、開発者に好まれています。実際の開発ではデータベースの操作が欠かせませんが、今回はGo言語を使ってデータベースの追加・削除・変更・クエリ操作を実装する方法を紹介します。 Go 言語では、データベースを操作するために通常、よく使用される SQL パッケージや gorm などのサードパーティ ライブラリを使用します。ここでは SQL パッケージを例として、データベースの追加、削除、変更、クエリ操作を実装する方法を紹介します。 MySQL データベースを使用していると仮定します。

iOS 18では、紛失または破損した写真を復元するための新しい「復元」アルバム機能が追加されます iOS 18では、紛失または破損した写真を復元するための新しい「復元」アルバム機能が追加されます Jul 18, 2024 am 05:48 AM

Apple の最新リリースの iOS18、iPadOS18、および macOS Sequoia システムでは、さまざまな理由で紛失または破損した写真やビデオをユーザーが簡単に回復できるように設計された重要な機能が写真アプリケーションに追加されました。この新機能では、写真アプリのツール セクションに「Recovered」というアルバムが導入され、ユーザーがデバイス上に写真ライブラリに含まれていない写真やビデオがある場合に自動的に表示されます。 「Recovered」アルバムの登場により、データベースの破損、カメラ アプリケーションが写真ライブラリに正しく保存されない、または写真ライブラリを管理するサードパーティ アプリケーションによって失われた写真やビデオに対する解決策が提供されます。ユーザーはいくつかの簡単な手順を実行するだけで済みます

Hibernate はポリモーフィック マッピングをどのように実装しますか? Hibernate はポリモーフィック マッピングをどのように実装しますか? Apr 17, 2024 pm 12:09 PM

Hibernate ポリモーフィック マッピングは、継承されたクラスをデータベースにマップでき、次のマッピング タイプを提供します。 join-subclass: 親クラスのすべての列を含む、サブクラス用の別個のテーブルを作成します。 table-per-class: サブクラス固有の列のみを含む、サブクラス用の別個のテーブルを作成します。 Union-subclass: join-subclass と似ていますが、親クラス テーブルがすべてのサブクラス列を結合します。

HTML がデータベースを読み取る方法の詳細な分析 HTML がデータベースを読み取る方法の詳細な分析 Apr 09, 2024 pm 12:36 PM

HTML はデータベースを直接読み取ることはできませんが、JavaScript と AJAX を通じて実現できます。この手順には、データベース接続の確立、クエリの送信、応答の処理、ページの更新が含まれます。この記事では、JavaScript、AJAX、および PHP を使用して MySQL データベースからデータを読み取る実践的な例を示し、クエリ結果を HTML ページに動的に表示する方法を示します。この例では、XMLHttpRequest を使用してデータベース接続を確立し、クエリを送信して応答を処理することで、ページ要素にデータを埋め込み、データベースを読み取る HTML の機能を実現します。

PHP で MySQLi を使用してデータベース接続を確立するための詳細なチュートリアル PHP で MySQLi を使用してデータベース接続を確立するための詳細なチュートリアル Jun 04, 2024 pm 01:42 PM

MySQLi を使用して PHP でデータベース接続を確立する方法: MySQLi 拡張機能を含める (require_once) 接続関数を作成する (functionconnect_to_db) 接続関数を呼び出す ($conn=connect_to_db()) クエリを実行する ($result=$conn->query()) 閉じる接続 ( $conn->close())

PHP でデータベース接続エラーを処理する方法 PHP でデータベース接続エラーを処理する方法 Jun 05, 2024 pm 02:16 PM

PHP でデータベース接続エラーを処理するには、次の手順を使用できます。 mysqli_connect_errno() を使用してエラー コードを取得します。 mysqli_connect_error() を使用してエラー メッセージを取得します。これらのエラー メッセージをキャプチャしてログに記録することで、データベース接続の問題を簡単に特定して解決でき、アプリケーションをスムーズに実行できるようになります。

PHP を使用してデータベース内の中国語の文字化けを処理するためのヒントと実践 PHP を使用してデータベース内の中国語の文字化けを処理するためのヒントと実践 Mar 27, 2024 pm 05:21 PM

PHP は Web サイト開発で広く使用されているバックエンド プログラミング言語であり、強力なデータベース操作機能を備えており、MySQL などのデータベースとの対話によく使用されます。ただし、中国語の文字エンコーディングは複雑であるため、データベース内で中国語の文字化けを処理するときに問題が発生することがよくあります。この記事では、文字化けの一般的な原因、解決策、具体的なコード例を含め、データベース内の中国語の文字化けを処理するための PHP のスキルと実践方法を紹介します。文字化けの一般的な原因は、データベースの文字セット設定が正しくないことです。データベースの作成時に、utf8 や u などの正しい文字セットを選択する必要があります。

Golangを使用してリモートデータベースに接続するにはどうすればよいですか? Golangを使用してリモートデータベースに接続するにはどうすればよいですか? Jun 01, 2024 pm 08:31 PM

Go 標準ライブラリのデータベース/SQL パッケージを通じて、MySQL、PostgreSQL、SQLite などのリモート データベースに接続できます。データベース接続情報を含む接続文字列を作成します。 sql.Open() 関数を使用してデータベース接続を開きます。 SQL クエリや挿入操作などのデータベース操作を実行します。 defer を使用してデータベース接続を閉じ、リソースを解放します。

See all articles