thinkphp數據庫增加數據的方法:1、通過insert方法添加一條數據;2、使用data方法配合insert使用來增加一條數據;3、通過向Db類的insertAll方法傳入多條數據。
本文操作環境:Windows7系統、thinkphp v5.1版、Dell G3電腦。
thinkphp數據庫怎么增加數據?
添加一條數據
使用 Db 類的 insert 方法向數據庫提交數據
立即學習“PHP免費學習筆記(深入)”;
$data?=?['foo'?=>?'bar',?'bar'?=>?'foo']; Db::name('user')->insert($data);
insert 方法添加數據成功返回添加成功的條數,通常情況返回 1
或者使用data方法配合insert使用。
$data?=?['foo'?=>?'bar',?'bar'?=>?'foo']; Db::name('user') ????->data($data) ????->insert();
如果你的數據表里面沒有foo或者bar字段,那么就會拋出異常。
如果不希望拋出異常,可以使用下面的方法:
$data?=?['foo'?=>?'bar',?'bar'?=>?'foo']; Db::name('user')->strict(false)->insert($data);
不存在的字段的值將會直接拋棄。
如果是mysql數據庫,支持replace寫入,例如:
$data?=?['foo'?=>?'bar',?'bar'?=>?'foo']; Db::name('user')->insert($data,?true);
添加數據后如果需要返回新增數據的自增主鍵,可以使用insertGetId方法新增數據并返回主鍵值:
$userId?=?Db::name('user')->insertGetId($data);
insertGetId 方法添加數據成功返回添加數據的自增主鍵
添加多條數據
添加多條數據直接向 Db 類的 insertAll 方法傳入需要添加的數據即可
$data?=?[ ????['foo'?=>?'bar',?'bar'?=>?'foo'], ????['foo'?=>?'bar1',?'bar'?=>?'foo1'], ????['foo'?=>?'bar2',?'bar'?=>?'foo2'] ]; Db::name('user')->insertAll($data);
insertAll 方法添加數據成功返回添加成功的條數
如果是mysql數據庫,支持replace寫入,例如:
$data?=?[ ????['foo'?=>?'bar',?'bar'?=>?'foo'], ????['foo'?=>?'bar1',?'bar'?=>?'foo1'], ????['foo'?=>?'bar2',?'bar'?=>?'foo2'] ]; Db::name('user')->insertAll($data,?true);
也可以使用data方法
$data?=?[ ????['foo'?=>?'bar',?'bar'?=>?'foo'], ????['foo'?=>?'bar1',?'bar'?=>?'foo1'], ????['foo'?=>?'bar2',?'bar'?=>?'foo2'] ]; Db::name('user')->data($data)->insertAll();
確保要批量添加的數據字段是一致的
如果批量插入的數據比較多,可以指定分批插入,使用limit方法指定每次插入的數量限制。
$data?=?[ ????['foo'?=>?'bar',?'bar'?=>?'foo'], ????['foo'?=>?'bar1',?'bar'?=>?'foo1'], ????['foo'?=>?'bar2',?'bar'?=>?'foo2'] ????... ]; //?分批寫入?每次最多100條數據 Db::name('user')->data($data)->limit(100)->insertAll();
推薦學習:《最新的10個thinkphp視頻教程》
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦