欢迎来到DT模板堂 登录 注册
DT教程
当前位置:首页 > 教程 > 二开教程> DTapi教程:27.数据库操作之 添加数据

DTapi教程:27.数据库操作之 添加数据

发表:DESTOON模板堂(dtmoban.com) 发表时间:2019-10-11
 

insert() 方法

insert()方法大大简化了destoon系统的数据插入方式

insert(参数一,参数二),共两个参数:
参数一:插入的数据,数组类型,可以是一维或二维数组,必填参数
参数二:是否使用replace方式,非必填参数,使用参数二时,参数一只能传一维数组,参数二为布尔型值,可使用:0,1 或者 true,false

单表单条信息插入

向表中插入一条信息,传一维数组,key必须与数据库中字段对应,否则会报错。
示例

$data = ['title'=>'www.dtmoban.com','username'=>'gaofei']; Db::table('test')->insert($data); 

单表多条信息插入

向表中插入多条信息,传二维数组,key必须与数据库中字段对应,否则会报错。
示例

$data = [ ['title'=>'www.dtmoban.com','username'=>'gaofei'], ['title'=>'www.dtmoban.com','username'=>'gaofei2'], ['title'=>'www.dtmoban.com','username'=>'gaofei3'], ['title'=>'www.dtmoban.com','username'=>'gaofei4'] ]; Db::table('test')->insert($data); 

replace方式插入数据

传第二个可选参数即可

示例:

$data = ['title'=>'www.dtmoban.com','username'=>'gaofei']; Db::table('test')->insert($data,true); 

注意:只能使用一维数组,单条插入。

content() 方法

这是一个辅助方法,可选。
用于向主表插入一条信息时,返回主表主健id,然后向主表关联的副表插入一条或多条信息,并且自带事务功能,如果副表插入失败,则删除主表信息。 这不是真正的事务,只是模拟的事务功能。

共四个参数: content(表名,关联字段,数据,范围,replace模式)
replace模式时只能插入单条数据,并且关联字段得是副本的主健

示例:

//向主表插入一条数据,并且向副表插入一条 $data = ['title'=>'www.dtmoban.com','username'=>'gaofei']; $content_data['content'] = "fdddddd"; Db::table('test')->content('test_data','itemid',$content_data,'content',true)->insert($data);  //向主表插入一条数据,并且同副表插入多条数据 //如果副表多插失败或者插入条数不符合,则撤回整个操作 $data['name'] = '小品02'; $data['number'] = 1002; $content_data[] = ['title'=>'5454545','price'=>'100']; $content_data[] = ['title'=>'5454545','price'=>'100']; $content_data[] = ['title'=>'5454545','price'=>'100']; $content_data[] = ['title'=>'5454545','price'=>'100']; $content_data[] = ['title'=>'5454545','price'=>'100']; $content_data[] = ['title'=>'5454545','price'=>'100']; Db::table('test')->content('test_product','tid',$content_data,'title,price')->insert($data);  

field()方法

用来限制插入的字段,安全性更高,一般用于数据是前台提交过来的情况,防止恶意住表中关健字段插非法信息。

示例:

$data = [     ['name'=>'标题01','number'=>10],     ['name'=>'标题02','number'=>11],     ['name'=>'标题03','number'=>12],     ['name'=>'标题04','number'=>13],     ['name'=>'标题05','number'=>14] ];  //单表批量插入,不支持副表同插 Db::table('test')->field('name,number')->insert($data); 

除了 name和number字段外,如果$data中还有其它字段就会被自动过忽略掉。

isertAll()方法

用于向数据库同时插入多条信息,和insert()方法传二维数组时效果是一样的。

示例:

$data = [     ['name'=>'标题01','number'=>10],     ['name'=>'标题02','number'=>11],     ['name'=>'标题03','number'=>12],     ['name'=>'标题04','number'=>13],     ['name'=>'标题05','number'=>14] ];  //单表批量插入,不支持副表同插 Db::table('test')->field('name,number')->insertAll($data); 

debug() 方法

用于打印插入sql语句,多条数据插入时,只会返回第一条数据的sql



电话: 1392 8916 720   客服QQ:56667115

© 2014-2015 DESTOON模板堂(dtmoban.com) 版权所有,并保留所有权利。

二维码

扫一扫
获取更多资讯