ホームページ  >  記事  >  PHPフレームワーク  >  データベース上でのThinkphp5.0の操作方法は何ですか?

データベース上でのThinkphp5.0の操作方法は何ですか?

WBOY
WBOY転載
2023-05-31 17:28:06893ブラウズ

#基本的な使用法

#クエリ操作

#

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 次元配列です。結果が存在しない場合は、空の配列が返されます。

Db::table('think_user')->where('status',1)->select();

アシスタント関数

システムが提供するデータベース アシスタント機能により、クエリがより便利になります:

db('user')->where('id',1)->find();
db('user')->where('status',1)->select();

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

db('user',[],false)->where('id',1)->find();
db('user',[],false)->where('status',1)->select();

Add data

次の挿入メソッドを使用します。データベースにデータを追加する Db クラス データを送信

$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 メソッドはデータを正常に追加し、正常に追加されたアイテムの数を返します

アシスタント関数

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

// 添加多条数据
db('user')->insertAll($list);

Update data

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

Db::table('think_user')->where('id', 1)->update(['name' => 'thinkphp']);

を返します。フィールドの値を更新します。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);
Delay Update

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(&#39;think_user&#39;)->where(&#39;id&#39;,&#39;<&#39;,10)->delete();

条件付きクエリ メソッドが返されます。

#where

AND 条件付きクエリには where メソッドを使用できます:
Db::table(&#39;think_user&#39;)
    ->where(&#39;name&#39;,&#39;like&#39;,&#39;%thinkphp&#39;)
    ->where(&#39;status&#39;,1)
    ->find();

whereOr Method

Db::table(&#39;think_user&#39;)
    ->where(&#39;name&#39;,&#39;like&#39;,&#39;%thinkphp&#39;)
    ->whereOr(&#39;title&#39;,&#39;like&#39;,&#39;%thinkphp&#39;)
    ->find();

混合クエリ

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

$result = Db::table(&#39;think_user&#39;)->where(function ($query) {
    $query->where(&#39;id&#39;, 1)->whereor(&#39;id&#39;, 2);
})->whereOr(function ($query) {
    $query->where(&#39;name&#39;, &#39;like&#39;, &#39;think&#39;)->whereOr(&#39;name&#39;, &#39;like&#39;, &#39;thinkphp&#39;);
})->select();

クエリ式

クエリ式はほとんどの SQL クエリをサポートします構文は ThinkPHP クエリ言語の本質でもありますクエリ式の形式は次のとおりです:

where(&#39;字段名&#39;,&#39;表达式&#39;,&#39;查询条件&#39;);
whereOr(&#39;字段名&#39;,&#39;表达式&#39;,&#39;查询条件&#39;);
表达式 含义
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 时间比较

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

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。