【十天精品課堂系列】 主講:李炎恢
學習要點:
1.單數(shù)據(jù)新增
2.批量數(shù)據(jù)新增
3.save()新增
本節(jié)課我們要學習一下數(shù)據(jù)庫的數(shù)據(jù)新增功能堡牡,從單數(shù)據(jù)篙梢、批量和 save()新增崎页。
一. 單數(shù)據(jù)新增
- 使用 insert()方法可以向數(shù)據(jù)表添加一條數(shù)據(jù)孝宗,更多的字段采用默認捣卤;
$data = [
'username' => '輝夜',
'password' => '123',
'gender' => '女',
'email' => 'huiye@163.com',
'price' => 90,
'details' => '123'
];
Db::name('user')->insert($data);
- 如果新增成功异逐,insert()方法會返回一個 1 值捶索;
return Db::name('user')->insert($data);
- 如果你添加一個不存在的字段數(shù)據(jù),會拋出一個異常 Exception灰瞻;
- 如果想強行新增拋棄不存在的字段數(shù)據(jù)腥例,則使用 strick(false)方法,忽略異常酝润;
Db::name('user')->strict(false)->insert($data);
- 如果我們采用的數(shù)據(jù)庫是 mysql燎竖,可以支持 replace 寫入;
- insert 和 replace 寫入的區(qū)別要销,前者表示表中存在主鍵相同則報錯构回,后者則修改;
Db::name('user')->replace()->insert($data);
return Db::getLastSql();
- 使用 insertGetId()方法疏咐,可以在新增成功后返回當前數(shù)據(jù) ID纤掸;
return Db::name('user')->insertGetId($data);
二. 批量數(shù)據(jù)新增
- 使用 insertAll()方法,可以批量新增數(shù)據(jù)浑塞,但要保持數(shù)組結(jié)構(gòu)一致借跪;
$data = [
[
'username' => '輝夜',
'password' => '123',
'gender' => '女',
'email' => 'huiye@163.com',
'price' => 90,
'details' => '123'
],
[
'username' => '輝夜',
'password' => '123',
'gender' => '女',
'email' => 'huiye@163.com',
'price' => 90,
'details' => '123'
]
];
Db::name('user')->insertAll($data);
- 批量新增也支持 replace()方法,添加后改變成 replace into酌壕;
Db::name('user')->replace()->insertAll($data);
三.save() 新增
- save()方法是一個通用方法掏愁,可以自行判斷是新增還是修改(更新)數(shù)據(jù)歇由;
- save()方法判斷是否為新增或修改的依據(jù)為,是否存在主鍵果港,不存在即新增沦泌;
Db::name('user')->save($data);