現在の位置: ホーム> 最新記事一覧> ThinkPhp5データの詳細な説明:ORMおよびSQLの例チュートリアル

ThinkPhp5データの詳細な説明:ORMおよびSQLの例チュートリアル

gitbox 2025-07-18

導入

ThinkPhp5フレームワークを使用して開発する場合、データを追加することは非常に一般的な操作です。この記事では、例を介してThinkPhp5にデータを追加する特定の方法を説明し、ORMモデルとネイティブSQLを介してデータ挿入を実装する方法を紹介します。

ORMを使用してデータを追加します

モデルを定義します

ORMを使用してデータを追加する前に、データベーステーブルに対応するモデルを作成する必要があります。 ThinkPhp5は、次のようなコマンドラインを介してモデルファイルの迅速な生成をサポートしています。

 php think make:model User

このコマンドは、App/Model Directoryでユーザーという名前のモデルファイルを生成します。モデルファイルには、対応するデータテーブル名、プライマリキー、およびフィールド検証ルールがデフォルトで含まれています。

データを追加します

コントローラーでは、モデルオブジェクトをインスタンス化してSave()メソッドを呼び出すことにより、データを追加できます。たとえば、ユーザーテーブルにレコードを挿入します。

 $user = new User;
$user->name = 'John';
$user->age = 25;
$user->save();

上記のコードはユーザーモデルオブジェクトを作成し、割り当て後、データを保存するためにSave()メソッドを呼び出します。

さらに、データ検証は、データの有効性を確保するために、validate()メソッドと組み合わせて実行できます。

 $user->validate(true)->save();

SQLステートメントを使用してデータを追加します

ORMメソッドに加えて、ThinkPhp5はネイティブSQLステートメントを介してデータの挿入もサポートしています。 DBクラスのexecute()メソッドを使用して、SQLコマンドを実行できます。

 use think\Db;

Db::execute("INSERT INTO `users` (`name`,`age`) VALUES ('John', 25)");

この方法は、SQLステートメントを直接実行し、ユーザーテーブルにデータを挿入します。

SQL注入を防ぎます

ネイティブSQLの実行時にSQL注入を防ぐことが重要です。セキュリティリスクを回避するために、パラメーターバインディングを使用してデータを渡すことをお勧めします。

 $name = 'John';
$age = 25;

Db::execute("INSERT INTO `users` (`name`,`age`) VALUES (?, ?)", [$name, $age]);

パラメーターバインディングにより、挿入されたデータがSQLコードとして解析されず、セキュリティが改善されます。

要約します

この記事では、ThinkPhp5にデータを追加するための2つの一般的な方法を詳細に紹介します。 ORMモデル法の使用は便利で高速で、ほとんどのアプリケーションシナリオに適しています。ネイティブSQLメソッドはより柔軟ですが、SQL注射の防止に注意を払う必要があります。実際のニーズに応じて適切な方法を選択すると、データライティング操作を効率的に完了するのに役立ちます。