yii2.0数据库查询修改等方法
yii2.0学习有一段时间了,给大家分享一下一些简单的查询等如何操作。
查询:(这里最前面的Test是引用的模型名)
Test::find()->all(); 此方法返回所有数据;
Test::findAll(['status'=>1]);
这些查询出来是对象形式,但是一般转换成数组格式:
Test::find()->asArray()->all(); 加上asArray()就取得数组形式的数据了,下面的自行添加。
Test::findOne($id); 此方法返回 主键 id=1 的一条数据(举个例子);
条件查询:where 、andwhere 、 orwhere
Test::find()->where(['name' => 小明'])->one(); 此方法返回 ['name' => '小明'] 的一条数据;
Test::find()->where(['name' => '小明'])->all(); 此方法返回 ['name' => '小明'] 的所有数据;
Test::find()->andWhere(['sex' => '男', 'age' => '24'])->count('id'); 统计符合条件的总条数;
Test::find()->where(['and','id=1','id=2'])->all(); //id=1 and id=2
Test::find()->where(['or','id=1','id=2'])->all(); //id=1 or id=2
sql语句查询:
Test::findBySql('SELECT * FROM user')->all(); 此方法是用 sql 语句查询 user 表里面的所有数据;
Test::findBySql('SELECT * FROM user')->one(); 此方法是用 sql 语句查询 user 表里面的一条数据;
//查询一条数据
$sql =
"SELECT id,name FROM tbl_user WHERE email='123@qq.com' "
;
$users=Yii::app()->db->createCommand($sql)->queryRow();
其他辅助查询:
Test::find()->one(); 此方法返回一条数据;
Test::find()->all(); 此方法返回所有数据;
Test::find()->count(); 此方法返回记录的数量;
Test::find()->average(); 此方法返回指定列的平均值;
Test::find()->min(); 此方法返回指定列的最小值 ;
Test::find()->max(); 此方法返回指定列的最大值 ;
Test::find()->scalar(); 此方法返回值的第一行第一列的查询结果;
Test::find()->column(); 此方法返回查询结果中的第一列的值;
Test::find()->exists(); 此方法返回一个值指示是否包含查询结果的数据行;
Test::find()->batch(10); 每次取 10 条数据
Test::find()->each(10); 每次取 10 条数据, 迭代查询
支持防sql注入:
$result=Test::find()->where(['between','id',1,2])->all(); //查询 id 1-2 的
②
$users = Yii::app()->db->createCommand()
->
select
(
'*'
)
->
from
(
'tbl_user'
)
->queryAll();
删除操作:(delete)
$connection ->createCommand()
->delete('tbl_user', 'status = 0')
->execute();
④(使用sql删除)
$connection ->createCommand('DELETE FROM tbl_user WHERE userid=:userid')
->execute();
⑤(查找并删除)
$user = User::findOne(2); $user->delete();
// 输出语句
// DELETE FROM `tbl_user` WHERE `id`='2'
删除多个:deleteAll()
①
Test::deleteAll('status = :status AND age > :age', [':age' => 20, ':status' => 'active']); //DELETE FROM `tbl_user`where age>20 and status='active'
②
Test::deleteAll([ 'and', 'type = :type_id',['not in', 'usercategoryid', $categoriesList]],[ ':type_id' => 2]); //DELETE FROM `tbl_user` WHERE (type = 2) AND (`usercategoryid` NOT IN (1, 2, 3))
③Yii::app()->db->createCommand()->delete(
'tbl_user'
,
'id=:id'
,
array(
':id'
=> 2));
修改:(先查询后修改)
②
//修改
yii::$app->db->createCommand()->update('yii_company_info',
["company_name"=>$company_name,"company_desc"=>$company_desc],
"company_id=$company_id")->execute();
插入:
//使用user model添加数据
$user =
new
Users(); //先实例化model
$user->setAttributes(array(
'username'
=>
'user1'
,
'email'
=>
'123@qq.com'
,
'password'
=>md5(
"abcsd5a4"
),
'last_login'
=>time()
));
$user->save();
Yii::$app->db->createCommand()->insert(
'tbl_user'
,
array(
'username'
=>
'zhangsan'
,
'email'
=>
'zhangsan@zs.com'
))->execute();
注:本文由王智磊(王大宝儿)整理编写,也参考借鉴了很多大神的笔记,分享代码,分享成功,欢迎各位交流和转载,转载请注明出处(博客园:王大宝儿)http://www.cnblogs.com/wangzhilei/
yii2.0数据库查询修改等方法的更多相关文章
- [moka学习笔记]yii2.0数据库查询的多种方法(未完待整理)
方法一:(使用model) $modelCommunityMail = CommunityMail::find()->where(['com_id'=>$id])->all(); 方 ...
- Yii2.0 数据库查询 [ 2.0 版本 ]
下面介绍一下 Yii2.0 对数据库 查询的一些简单的操作 User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的 ...
- Yii2.0 数据库查询方法
User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的一条数据(举个例子): User:: ...
- Yii2.0数据库查询实例(三)
常用查询: // WHERE admin_id >= 10 LIMIT 0,10 User::find()->])->offset()->limit()->all() / ...
- Yii2.0数据库查询的一些简单的操作
User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的一条数据(举个例子): User::find()->w ...
- yii2.0 数据库查询操作
User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的一条数据(举个例子): User:: ...
- Yii2.0 Cookies机制和使用方法
在实际的项目开发过程中,用到了Yii2.0 Cookies机制!但是遇到一个十分奇葩的问题,同一个YII框架,backend下Cookies能够正常存储于客户端,但是frontend始终不行.文章的最 ...
- yii2.0 访问控制器下的方法时出现 Object Not Found! 解决办法
yii2.0 访问控制器下的方法时出现 Object Not Found! 时 可以查看(apache) 入口文件index.php 的同级有没有 .htaccess 文件 没有.htaccess ...
- YII2.0 数据库增删改查
/*==================== dkhBaseModel 数据库增删改查方法 start ================================*/ //新增一条数据 publ ...
随机推荐
- Oracle dbms_random随机函数包
dbms_random是oracle提供的一个随机函数包,以下是它的一些常用的功能: 1.dbms_random.value 作用:生成一个大于等于0,大于等于1的随机的38位小数,代码如下: sel ...
- Netty SSL性能调优
TLS算法组合 在TLS中,5类算法组合在一起,称为一个CipherSuite: 认证算法 加密算法 消息认证码算法 简称MAC 密钥交换算法 密钥衍生算法 比较常见的算法组合是 TLS_ECDHE_ ...
- EntityManager对象管理
根据EntityManager对象的管理方式,可以有以下两种类型: — 容器托管的(container-managed)EntityManager对象 容器托管的EntityManager对象最简单, ...
- mysql 8 root密码重置
亲测有效. https://blog.csdn.net/gupao123456/article/details/80766154
- 项目管理系列--好用的代码评审(Code Review)工具
1. Gerrit Gerrit is a web based code review system, facilitating online code reviews for projects us ...
- 铵钮提交事件PostBack之后,一些动态加载的物件丢失
今早起来,发现skype有网友留言,情况大约如下,不过Insus.NET还是先感谢网友的测试.http://www.cnblogs.com/insus/p/3193619.html 如果你有看此篇博 ...
- javascrapy 正则表达式验证 IP和MAC
var psrc = $('input[name="psrc"]').val() var hwsrc = $('input[name="hwsrc"]').va ...
- git新建分支没有master分支,其他分支也看不到
git checkout -b dev git新建dev分支,发现切换到了dev分支,但是master分支没有了 git branch和git branch -a 都没有任何反应,看不到其他分支, g ...
- 小任务之使用SVG画柱状图~
function drawBar(data) { var barGraph = document.querySelector("#bar-graph"); var graphWid ...
- C++教程|菜鸟教程
https://www.runoob.com/cplusplus/cpp-tutorial.html 在线编辑器 http://www.runoob.com/try/runcode.php?filen ...