ホームページ > PHPフレームワーク > ThinkPHP > Thinkphp 5.0のデータベース(キーコード)の操作について話しましょう

Thinkphp 5.0のデータベース(キーコード)の操作について話しましょう

青灯夜游
リリース: 2022-09-23 19:28:36
転載
1488 人が閲覧しました

標準的な Web サイトはデータベース操作と切り離せない必要があります。この一連のコースでは、ThinkPHP5 データ操作の謎を解き明かし、ThinkPHP5 を喜んで使用してデータベースを操作し、データベース操作をより変更可能にしていきます。喜び。

Thinkphp 5.0のデータベース(キーコード)の操作について話しましょう

#基本的な使い方

クエリ操作

Db::query('select * from think_user where id=?',[8]);
ログイン後にコピー

#書き込み操作

Db::execute('insert into think_user (id, name) values (?, ?)',[8,'thinkphp']);
ログイン後にコピー

クエリ コンストラクター

クエリ データ #find はレコードを返し、返される結果は 1 次元配列です。結果が存在しない場合は、NULL が返されます。

Db::table('think_user')->where('id',1)->find();
ログイン後にコピー
select はすべてのレコードを返し、返される結果は2 次元配列 結果が存在しない場合は NULL が返されます 存在する場合は空の配列が返されます

Db::table('think_user')->where('status',1)->select();
ログイン後にコピー

アシスタント機能

システムは DB アシスタント機能を提供しますより便利なクエリ:
db('user')->where('id',1)->find();
db('user')->where('status',1)->select();
ログイン後にコピー

注: db アシスタント機能を使用すると、デフォルトで毎回データベースに再接続されますが、Db::name メソッドまたは Db::table メソッドの使用はシングルトンです。 db 関数が同じリンクを使用する必要がある場合は、

#
db('user',[],false)->where('id',1)->find();
db('user',[],false)->where('status',1)->select();
ログイン後にコピー

#Add data

のように 3 番目のパラメータを渡すことができます。 #Use Db クラスの insert メソッドはデータをデータベースに送信します

$data = ['foo' => 'bar', 'bar' => 'foo'];
Db::table('think_user')->insert($data);
ログイン後にコピー
複数のデータを追加します

複数のデータを追加し、これを Db クラスの insertAll メソッドに直接渡します。追加する必要があるデータは次のとおりです。

$data = [    ['foo' => 'bar', 'bar' => 'foo'],
    ['foo' => 'bar1', 'bar' => 'foo1'],
    ['foo' => 'bar2', 'bar' => 'foo2']
];
Db::name('user')->insertAll($data);
ログイン後にコピー
insertAll メソッドはデータを正常に追加し、正常に追加された項目の数を返します

Assistant function

// 添加单条数据
db('user')->insert($data);

// 添加多条数据
db('user')->insertAll($list);
ログイン後にコピー

Update data

update メソッドは、影響を受けるデータの数を返します。データは変更されず、0

Db::table('think_user')->where('id', 1)->update(['name' => 'thinkphp']);
ログイン後にコピー

Update を返します。特定のフィールドの値: setField メソッドは影響を受けるデータの数を返しますが、データは変更されません データ フィールドは 0
Db::table('think_user')->where('id',1)->setField('name', 'thinkphp');
ログイン後にコピー
自增或自减一个字段的值
// score 字段加 1
Db::table('think_user')->where('id', 1)->setInc('score');
// score 字段加 5
Db::table('think_user')->where('id', 1)->setInc('score', 5);
// score 字段减 1
Db::table('think_user')->where('id', 1)->setDec('score');
// score 字段减 5
Db::table('think_user')->where('id', 1)->setDec('score', 5);
ログイン後にコピー
遅延更新

Db::table('think_user')->where('id', 1)->setInc('score', 1, 10);
ログイン後にコピー

データを削除

## を返します#

// 根据主键删除
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','<&#39;,10)->delete();
ログイン後にコピー

条件付きクエリ メソッド

where

where メソッドを使用して AND 条件をクエリできます。

Db::table('think_user')
    ->where('name','like','%thinkphp')
    ->where('status',1)
    ->find();
ログイン後にコピー
whereOr メソッド

Db::table('think_user')
    ->where('name','like','%thinkphp')
    ->whereOr('title','like','%thinkphp')
    ->find();
ログイン後にコピー

混合クエリ

where メソッド多くの場合、複雑なクエリ条件では whereOr メソッドを混在させる必要があります。例を次に示します:

$result = Db::table('think_user')->where(function ($query) {
    $query->where('id', 1)->whereor('id', 2);
})->whereOr(function ($query) {
    $query->where('name', 'like', 'think')->whereOr('name', 'like', 'thinkphp');
})->select();
ログイン後にコピー
クエリ式クエリ式は、ほとんどの SQL クエリ構文をサポートしており、 ThinkPHP クエリ言語の本質。クエリ式の使用形式は次のとおりです:

where('字段名','表达式','查询条件');
whereOr('字段名','表达式','查询条件');
ログイン後にコピー
表达式 含义
EQ、= 等于(=)
NEQ、<> 不等于(<>)
GT、> 大于(>)
EGT、>= 大于等于(>=)
LT、< 小于(<)
ELT、<= 小于等于(<=)
LIKE 模糊查询
[NOT] BETWEEN (不在)区间查询
[NOT] IN (不在)IN 查询
[NOT] NULL 查询字段是否(不)是NULL
[NOT] EXISTS EXISTS查询
EXP 表达式查询,支持SQL语法
> time 时间比较
< time 时间比较
between time 时间比较
notbetween time 时间比较
ログイン後にコピー
[関連チュートリアルの推奨事項:

thinkphp フレームワーク]

以上がThinkphp 5.0のデータベース(キーコード)の操作について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート