宅男在线永久免费观看网直播,亚洲欧洲日产国码无码久久99,野花社区在线观看视频,亚洲人交乣女bbw,一本一本久久a久久精品综合不卡

全部
常見問題
產(chǎn)品動態(tài)
精選推薦

ThinkPHP6 數(shù)據(jù)庫增刪改查操作整理

管理 管理 編輯 刪除

1.連接數(shù)據(jù)表

name方式

用處:簡化數(shù)據(jù)表前綴的傳入,例如:

Db::name('inquiry');

會自動獲取當前模型對應(yīng)的數(shù)據(jù)表前綴來生成 inquiry 數(shù)據(jù)表名稱。

注意:本文章的數(shù)據(jù)表沒有前綴,有前綴的就會自動獲取 前綴_inquiry數(shù)據(jù)表

table方式

用法:

切換操作的數(shù)據(jù)表;

table方法指定的數(shù)據(jù)表需要完整的表名

Db::table('inquiry');

指定數(shù)據(jù)庫:

Db::table('db_name.inquiry');

對多表進行操作;

Db::table('inquiry i,inquiry_company c')
    ->field('i.id,c.iq_id')
    ->limit(10)->select();

注意:多表查詢,并非聯(lián)合查詢

Sql:

SELECT `i`.`id`,`c`.`iq_id` FROM `inquiry` `i`,`inquiry_company` `c` LIMIT 10

2.查看執(zhí)行sql

echo Db::table('inquiry')->fetchSql(true)->find(1);

3.查詢單條數(shù)據(jù)

Db::name('inquiry')->where('brand', 10)->where('category', 42)->find()

Sql:

SELECT * FROM `inquiry` WHERE  `brand` = 10  AND `category` = 42 LIMIT 1

返回結(jié)果:

Array
(
    [id] => 1
    [uid] => 11
    [company_id] => 5
    [content] => 690164-B21  P220I raid卡 數(shù)量1
    [fileurl] =>
    [brand] => 10
    [category] => 42
    [num] => 1
    [signup_num] => 0
    [arrival_time] => 1614096000
    [addtime] => 1614145474
    [invoice_type] =>
    [appoint_company] =>
    [is_expire] => 1
)

4.查詢數(shù)據(jù)集

Db::name('inquiry')->where('brand', 10)->where('category', 42)->select()->toArray();

需要toArray()方法把返回數(shù)據(jù)對象轉(zhuǎn)化為數(shù)組。

Sql:

SELECT * FROM `inquiry` WHERE  `brand` = 10  AND `category` = 42

返回結(jié)果:

Array
(
    [0] => Array
    (
        [id] => 1
        [uid] => 11
        [company_id] => 5
        [content] => 690164-B21  P220I raid卡 數(shù)量1
        [fileurl] =>
        [brand] => 10
        [category] => 42
        [num] => 1
        [signup_num] => 0
        [arrival_time] => 1614096000
        [addtime] => 1614145474
        [invoice_type] =>
        [appoint_company] =>
        [is_expire] => 1
     )
 
    [1] => Array
    (
        [id] => 149
        [uid] => 10
        [company_id] => 4
        [content] => 615732-B21   HP Ethernet 1Gb 2-port 332T 網(wǎng)卡
        [fileurl] =>
        [brand] => 10
        [category] => 42
        [num] => 5
        [signup_num] => 0
        [arrival_time] => 1616515200
        [addtime] => 1616562900
        [invoice_type] =>
        [appoint_company] =>
        [is_expire] => 1
        )
)

5.設(shè)置返回字段 field

一般我們在項目中查詢時,不會直接獲取所有字段,都是按需獲取指定部分字段,這也是一種數(shù)據(jù)查詢優(yōu)化方式。而TP中獲取部分字段,并不是直接在find([‘id’, ‘brand’, ‘category’]) 或者 select([‘id’, ‘brand’, ‘category’]) 這樣做了,只會得到NULL 或者 array(),需要一個新的方法:

Db::name('inquiry')->field(['id', 'brand', 'category'])->find();
Db::name('inquiry')->field(['id', 'brand', 'category'])->select()->toArray();

6.排序order

Db::name('inquiry')
->field(['id', 'brand', 'category'])
->order('id','desc')->find();
 
Db::name('inquiry')
->field(['id','brand','category'])
->order('id','desc')
->select()->toArray();

7.列查詢

查詢某一列的值可以用.

Db::name('app_service')->where('id', '>', 1)->column('name');

返回結(jié)果:

Array
(
    [0] => 新增數(shù)據(jù)
    [1] => 新增數(shù)據(jù)
    [2] => 新增數(shù)據(jù)
    [3] => 新增數(shù)據(jù)
    [4] => 新增數(shù)據(jù)
    [5] => 新增數(shù)據(jù)
    [6] => 新增數(shù)據(jù)
    [7] => 新增數(shù)據(jù)
    [8] => 新增數(shù)據(jù)
)

Id作key

Db::name('app_service')->where('id', '>', 1)->column('name', 'id');

返回結(jié)果:

Array
(
    [2] => 新增數(shù)據(jù)
    [3] => 新增數(shù)據(jù)
    [4] => 新增數(shù)據(jù)
    [5] => 新增數(shù)據(jù)
    [6] => 新增數(shù)據(jù)
    [7] => 新增數(shù)據(jù)
    [8] => 新增數(shù)據(jù)
    [9] => 新增數(shù)據(jù)
    [10] => 新增數(shù)據(jù)
)

8.值查詢

查詢某個字段的值可以用。

Db::name('app_service')->where('id', 1)->value('name');

返回結(jié)果:

新增數(shù)據(jù)

9.新增單條數(shù)據(jù)

save

自動判斷是新增還是更新數(shù)據(jù)(以寫入數(shù)據(jù)中是否存在主鍵數(shù)據(jù)為依據(jù))。

Db::name('app_service')->save([
    'name' => '新增數(shù)據(jù)',
    'state' => 1,
    'reason' => '測試新增數(shù)據(jù)',
    'addtime' =>time(),
]);

insert

Db::name('app_service')->insert([
    'name' => '新增數(shù)據(jù)',
    'state' => 1,
    'reason' => '測試新增數(shù)據(jù)',
    'addtime' =>time(),
]);

Sql:

INSERT INTO `app_service` SET `name` = '新增數(shù)據(jù)' , `state` = 1 , `reason` = '測試新增數(shù)據(jù)' , `addtime` = 1673242525

返回結(jié)果:

成功:返回添加成功的條數(shù);失?。簰伋霎惓?/p>

insertGetId

Db::name('app_service')->insertGetId([
    'name' => '新增數(shù)據(jù)',
    'state' => 1,
    'reason' => '測試新增數(shù)據(jù)',
    'addtime' =>time(),
]);

Sql:同save、insert

返回結(jié)果:

返回新增數(shù)據(jù)的自增主鍵

10.新增批量數(shù)據(jù)

確保字段一致

$data = [
    [
        'name' => '新增數(shù)據(jù)-批量1',
        'state' => 1,
        'reason' => '測試新增數(shù)據(jù)',
        'addtime' =>time(),
    ],
    [
        'name' => '新增數(shù)據(jù)-批量2',
        'state' => 1,
        'reason' => '測試新增數(shù)據(jù)',
        'addtime' =>time(),
    ]
];
$info1 = Db::name('app_service')->fetchSql(true)->insertAll($data);

Sql:

INSERT INTO `app_service` (`name` , `state` , `reason` , `addtime`) VALUES ( '新增數(shù)據(jù)-批量1',1,'測試新增數(shù)據(jù)',1673242931 ) , ( '新增數(shù)據(jù)-批量2',1,'測試新增數(shù)據(jù)',1673242931 )

返回結(jié)果:

是2,為成功添加條數(shù);錯誤,則拋出異常。

11.更新數(shù)據(jù)

save

根據(jù)自增id,去識別更新

Db::name('app_service')->save(['id' => 18, 'name' => '編輯數(shù)據(jù)-測試']);

update

Db::name('app_service')->where('id', 18)->update(['name' => '編輯數(shù)據(jù)-測試']);

Sql:

UPDATE `app_service`  SET `name` = '編輯數(shù)據(jù)-測試3'  WHERE  `id` = 18

返回結(jié)果:

返回修改影響條數(shù)

12.Raw更新

Db::name('app_service')
    ->where('id', 18)
    ->update([
        'name'    => '數(shù)據(jù)raw操作',
        'state'    => Db::raw('state-1'),
        'addtime'  => Db::raw('addtime+3')
    ]);

13.自增/自減

可以使用inc/dec方法自增或自減一個字段的值( 如不加第二個參數(shù),默認步長為1)。

自增

Db::name('app_service')->where('id', 18)->inc('name', 1)->update();
 
Db::name('app_service')->where('id', 18)->inc('addtime')->update();

自減

Db::name('app_service')->where('id', 18)->dec('addtime', 1)->update();
Db::name('app_service')->where('id', 18)->dec('addtime')->update();

注意:當要操作的字段值為NULL時,自增/自減不執(zhí)行。

15.刪除數(shù)據(jù)

條件刪除


Db::name('app_service')->where('id',18)->delete();
 
Db::name('app_service')->where('id','>',15)->delete();

返回結(jié)果:

刪除條數(shù)

16.刪除全部數(shù)據(jù)

Db::name('app_service')->delete(true);

需要設(shè)置為true,否則拋出“沒有條件不會執(zhí)行刪除操作”提示


請登錄后查看

CRMEB-慕白寒窗雪 最后編輯于2023-03-06 17:50:52

快捷回復
回復
回復
回復({{post_count}}) {{!is_user ? '我的回復' :'全部回復'}}
排序 默認正序 回復倒序 點贊倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理員 企業(yè)

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
{{item.is_suggest == 1? '取消推薦': '推薦'}}
沙發(fā) 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暫無簡介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打賞
已打賞¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回復' : '回復'}}
刪除
回復
回復

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回復 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打賞
已打賞¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回復' : '回復'}}
刪除
回復
回復
查看更多
打賞
已打賞¥{{reward_price}}
3741
{{like_count}}
{{collect_count}}
添加回復 ({{post_count}})

相關(guān)推薦

快速安全登錄

使用微信掃碼登錄
{{item.label}} 加精
{{item.label}} {{item.label}} 板塊推薦 常見問題 產(chǎn)品動態(tài) 精選推薦 首頁頭條 首頁動態(tài) 首頁推薦
取 消 確 定
回復
回復
問題:
問題自動獲取的帖子內(nèi)容,不準確時需要手動修改. [獲取答案]
答案:
提交
bug 需求 取 消 確 定
打賞金額
當前余額:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
請輸入 0.1-{{reward_max_price}} 范圍內(nèi)的數(shù)值
打賞成功
¥{{price}}
完成 確認打賞

微信登錄/注冊

切換手機號登錄

{{ bind_phone ? '綁定手機' : '手機登錄'}}

{{codeText}}
切換微信登錄/注冊
暫不綁定
CRMEB客服

CRMEB咨詢熱線 咨詢熱線

400-8888-794

微信掃碼咨詢

CRMEB開源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
返回頂部 返回頂部
CRMEB客服