ホームページ  >  記事  >  バックエンド開発  >  ThinkPHP5 データベースでの関連操作

ThinkPHP5 データベースでの関連操作

jacklove
jackloveオリジナル
2018-06-15 11:11:301584ブラウズ

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','<' ,10)-> ;delete(); アシスタント関数

// 根据主键删除
db(&#39;user&#39;)->delete(1);// 条件删除    
db(&#39;user&#39;)->where(&#39;id&#39;,1)->delete();

5. チェーン操作

ここで、ステータス 1 を満たす User テーブルの最初の 10 レコードをクエリしたいとします。ユーザーの作成時間に従ってそれらを並べ替えます。 コードは次のとおりです。

Db::table(&#39;think_user&#39;)
    ->where(&#39;status&#39;,1)
    ->order(&#39;create_time&#39;)
    ->limit(10)
    ->select();

ここでの where、order、limit メソッドは、select メソッドが最後に配置される必要があることを除いて、チェーン操作メソッドと呼ばれます。 select メソッドはチェーン演算メソッドではありません)、チェーン演算メソッド 数式演算のメソッドが呼び出される順序はありません。

この記事では、ThinkPHP5 データベースの関連操作について説明します。さらに関連する内容については、php 中国語 Web サイトを参照してください。

関連する推奨事項:

ThinkPHP5 のデータベースとモデルの使用法について

thinkphp5.0 データベース操作のケース スタディ

ThinkPHP5 と ThinkPHP3 の類似点と相違点をいくつか挙げてください

以上がThinkPHP5 データベースでの関連操作の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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