ThinkPHP5-データベース操作
1. データベース設定
1. 次の設定パラメータをアプリケーション ディレクトリまたはモジュール ディレクトリに追加します:
return [ // 数据库类型 'type' => 'mysql', // 数据库连接DSN配置 'dsn' => '', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'thinkphp', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => '', // 数据库连接端口 'hostport' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => 'think_', // 数据库调试模式 'debug' => false, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) 'deploy' => 0, // 数据库读写是否分离 主从式有效 'rw_separate' => false, // 读写分离后 主服务器数量 'master_num' => 1, // 指定从服务器序号 'slave_no' => '', // 是否严格检查字段是否存在 'fields_strict' => true, ];
2. #
Db::connect('mysql://root:1234@127.0.0.1:3306/thinkphp#utf8'); 数据库类型://用户名:密码@数据库地址:数据库端口/数据库名#字符集2. クエリ (クエリ操作) 実行 (書き込み操作) 元の SQL ステートメントの追加、削除、変更およびクエリ
Db::execute("insert into t_test(username,password) values('qqq','qqq')"); Db::execute("update t_test set username ='55' where id = '10'"); Db::query('select * from t_test where id = 5'); Db::execute('delete from t_test where id = 6');プレースホルダー バインディングという名前の 3 つのパラメーター バインディング
支持参数绑定: Db::query('select * from think_user where id=?',[8]); Db::execute('insert into think_user (id, name) values (?, ?)',[8,'thinkphp']); 支持占位符绑定: Db::query('select * from think_user where id=:id',['id'=>8]); Db::execute('insert into think_user (id, name) values (:id, :name)',['id'=>8,'name'=>'thinkphp']);4.コンストラクタ
1. データのクエリ:
(1) データのクエリ:
// table方法必须指定完整的数据表名Db::table('think_user')->where('id',1)->find();//find 方法查询结果不存在,返回 null(2) データ セットのクエリ
Db::table('think_user')->where('status',1)->select(); select 方法查询结果不存在,返回空数组データ テーブルが設定されている場合 プレフィックス パラメータの場合
Db::name('user')->where('id',1)->find();Db::name('user')->where('status',1)->select();データ テーブルでテーブル プレフィックス関数が使用されていない場合、name メソッドと table メソッドは同じ効果があります。
(3) アシスタント機能
システムは、クエリをより便利にするための db アシスタント機能を提供します:
db('user')->where('id',1)->find(); db('user')->where('status',1)->select();2. データの追加:
(1) データの追加
$data = ['foo' => 'bar', 'bar' => 'foo'];Db::table('think_user')->insert($data);(2) 複数のデータを追加します
$data = [ ['foo' => 'bar', 'bar' => 'foo'], ['foo' => 'bar1', 'bar' => 'foo1'], ['foo' => 'bar2', 'bar' => 'foo2'] ];Db::name('user')->insertAll($data); insertAll 方法添加数据成功返回添加成功的条数(3) アシスタント関数
// 添加单条数据 db('user')->insert($data);// 添加多条数据 db('user')->insertAll($list);3. データを更新します:
(1) データテーブルのデータを更新します
Db::table('think_user') ->where('id', 1) ->update(['name' => 'thinkphp']);(2) 補助関数
// 更新数据表中的数据 db('user')->where('id',1)->update(['name' => 'thinkphp']);// 更新某个字段的值 db('user')->where('id',1)->setField('name','thinkphp');// 自增 score 字段 db('user')->where('id', 1)->setInc('score');// 自减 score 字段 db('user')->where('id', 1)->setDec('score');4. データの削除
(1) テーブル内のデータを削除 // 主キーに従って削除
Db::table('think_user' )->delete (1);
Db::table('think_user')->delete([1,2,3]);
Db: :table('think_user ')->where('id',1)->delete();
Db::table('think_user')->where('id','
// 根据主键删除 db('user')->delete(1);// 条件删除 db('user')->where('id',1)->delete();5. チェーン操作
ここで、ステータス 1 を満たす User テーブルの最初の 10 レコードをクエリしたいとします。ユーザーの作成時間に従ってそれらを並べ替えます。 コードは次のとおりです。
Db::table('think_user') ->where('status',1) ->order('create_time') ->limit(10) ->select();ここでの where、order、limit メソッドは、select メソッドが最後に配置される必要があることを除いて、チェーン操作メソッドと呼ばれます。 select メソッドはチェーン演算メソッドではありません)、チェーン演算メソッド 数式演算のメソッドが呼び出される順序はありません。 この記事では、ThinkPHP5 データベースの関連操作について説明します。さらに関連する内容については、php 中国語 Web サイトを参照してください。 関連する推奨事項:
ThinkPHP5 と ThinkPHP3 の類似点と相違点をいくつか挙げてください
以上がThinkPHP5 データベースでの関連操作の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

phpssionscanStorestrings、numbers、arrays、andobjects.1.strings:textdatalikeusernames.2.numbers:integersorfloatsforcounters.3.arrays:listslikeshoppingcarts.4.objects:complextructuresthataresialized。

tostartaphpsession、outsession_start()atthescript'sbeginning.1)placeitbe foreanyouttosetthesscookie.2)usesionsionsionsionserdatalikelogintatussorshoppingcarts.3)再生セッションインドストップレベントフィックスアタック

セッション再生とは、新しいセッションIDを生成し、セッション固定攻撃の場合にユーザーが機密操作を実行するときに古いIDを無効にすることを指します。実装の手順には次のものが含まれます。1。感度操作を検出、2。新しいセッションIDを生成する、3。古いセッションIDを破壊し、4。ユーザー側のセッション情報を更新します。

PHPセッションは、アプリケーションのパフォーマンスに大きな影響を与えます。最適化方法には以下が含まれます。1。データベースを使用してセッションデータを保存して応答速度を向上させます。 2。セッションデータの使用を削減し、必要な情報のみを保存します。 3.非ブロッキングセッションプロセッサを使用して、同時実行機能を改善します。 4.セッションの有効期限を調整して、ユーザーエクスペリエンスとサーバーの負担のバランスを取ります。 5.永続的なセッションを使用して、データの読み取り時間と書き込み時間を減らします。

phpsesionsareserver-side、whilecookiesareclient-side.1)Sessionsionsionsoredataontheserver、aremoresecure.2)cookiesstoredataontheclient、cookiestoresecure、andlimitedinsizeisize.sesionsionsionivationivationivationivationivationivationivationivate

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

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

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ホットトピック









