开启辅助访问
帐号登录 |立即注册

TP5学习笔记(数据的增、删、改操作)

 
一、新增数据

1、数据形式
$data=[关联数组];
数组中的KEY就是数据表中的字段,多个用逗号分隔。
Db: :name( 'user')->insert( $data);

2.如果新增成功,insert()方法会返回收影响的行数;
$flag = Db: :name('user')->insert ($data);
if ($flag) return ' 新增成功! ' ;

3.你可以使用data()方法来设置添加的数据数组;
Db: :name('user')->data( $data)->insert();


4.如果 你添加一个不存在的数据,会抛出一个异常Exception;

5.如果采用的是mysql数据库,支持REPLACE写入;
Db: :name( 'user')->insert($data,true);


6. 使用insertGetId()方法, 可以在新增成功后返回当前数据ID;
Db: :name( 'user')-> insertGetId($data);


7.使用 insertAll()方法,可以批量新增数据,但要保持数组结构- -致;
$data =[

[数组1],[数组1]
];
Db: :name( 'user')->insertAll( $data);


8.批量新增也支持data()方法,和单独新增类似;
Db: :name( 'user' )->data($data)->insertAll();

9. 批量新增也支持reaplce写入,和单独新增类似;

Db: :name( 'user' )->insertAll($data, true);




二、修改数据

1.使用 update()方法来修改数据,修改成功返回影响行数,没有修改返回0;
$data = [
'username '=>'李白 '
];
$update = Db: :name('user')->where('id', 38)->update( $data);
return $update;

2.或者使用data()方法传入要修改的数组,如果两边都传入会合并;
Db: :name( 'user' )->where('id', 38)->data( $data)- >update(['password'=>'456']);


3.如果修改数组中包含主键,那么可以直接修改;
$data = [
username=>'李白',
'id '=>38

];
Db: : name( 'user')- >update($data);

4.使用 inc()方法可以对字段增值,dec()方法可以对字段减值;
Db: : name('user' )->inc('price' )->dec('price', 3)->update($data);


5.增值和减值如果同时对一个字段操作,前面一个会失效,所以要分开写;
Db: : name('user' )->inc('price' )->update($data);
Db: : name('user' )->dec('price', 3)->update($data);

6.使用exp()方法可以在字段中使用mysql函数;
Db: :name( 'user')->exp(' email', 'UPPER(email)')- >update($data);


7. 使用setField()方法可以更新一个字段值;
Db: :name( 'user' )->where('id', 38)- >setField( 'username', ' 辉夜');


8.增值setInc( )和减值setDec()也有简单的做法,方便更新一个字段值;
Db: :name( 'user')->where('id', 38)=>setInc('price');
增值和减值如果不指定第二个参数,则步长为1;

9.使用raw( )方法修改更新,更加容易方便;
$data=[
' username'=>'李白',
' email '=>Db: :raw( 'UPPER( email)'),
‘price'=>Db: :raw('price-3'),
'id'=>38
];
Db: :name( 'user')- >update($data);


三,删除数据

1.极简删除可以根据主键直接删除,删除成功返回影响行数,否则0;
Db: :name( 'user' )->delete(51);

2.根据主键,还可以删除多条记录;
Db: :name('user')->delete([48,49,50]);

3.正常情况下,通过where( )方法来删除;
Db: :name( 'user')->where('id', 47)->delete();

4.通过 true参数删除数据表所有数据,我还没测试,大家自行测试下:

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

回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

友情链接
  • 艾Q网

    提供设计文章,教程和分享聚合信息与导航工具,最新音乐,动漫,游戏资讯的网站。