博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Yii2数据库操作的各种写法
阅读量:6204 次
发布时间:2019-06-21

本文共 3580 字,大约阅读时间需要 11 分钟。

-------------------------------ActiveRecord----------------------------------------

查询:

// find the customers whose primary key value is 10$customers = Customer::findAll(10);$customer = Customer::findOne(10);// the above code is equivalent to:$customers = Customer::find()->where(['id' => 10])->all();// find the customers whose primary key value is 10, 11 or 12.$customers = Customer::findAll([10, 11, 12]);$customers = Customer::find()->where(['IN','id',[10,11,12]])->all();// the above code is equivalent to:$customers = Customer::find()->where(['id' => [10, 11, 12]])->all();// find customers whose age is 30 and whose status is 1$customers = Customer::findAll(['age' => 30, 'status' => 1]);// the above code is equivalent to:$customers = Customer::find()->where(['age' => 30, 'status' => 1])->all();// use params binding$customers = Customer::find()->where('age=:age AND status=:status')->addParams([':age'=>30,':status'=>1])->all();// use index$customers = Customer::find()->indexBy('id')->where(['age' => 30, 'status' => 1])->all();// get customers count$count = Customer::find()->where(['age' => 30, 'status' => 1])->count();// add addition condition$customers = Customer::find()->where(['age' => 30, 'status' => 1])->andWhere('score > 100')->orderBy('id DESC')->offset(5)->limit(10)->all();// find by sql$customers = Customer::findBySql('SELECT * FROM customer WHERE age=30 AND status=1 AND score>100 ORDER BY id DESC LIMIT 5,10')->all();

修改:

// update status for customer-10$customer = Customer::findOne(10);$customer->status = 1;$customer->update();// the above code is equivalent to:Customer::updateAll(['status' => 1], 'id = :id',[':id'=>10]);

删除:

// delete customer-10Customer::findOne(10)->delete();// the above code is equivalent to:Customer::deleteAll(['status' => 1], 'id = :id',[':id'=>10]);

--------------------------------使用子查询------------------------------------------

$subQuery = (new Query())->select('COUNT(*)')->from('customer');// SELECT `id`, (SELECT COUNT(*) FROM `customer`) AS `count` FROM `customer`$query = (new Query())->select(['id', 'count' => $subQuery])->from('customer');

--------------------------------手写SQL-------------------------------------------

// select$customers = Yii::$app->db->createCommand('SELECT * FROM customer')->queryAll();// updateYii::$app->db->createCommand()->update('customer',['status'=>1],'id=10')->execute();// deleteYii::$app->db->createCommand()->delete('customer','id=10')->execute();//transaction// outer $transaction1 = $connection->beginTransaction();try {    $connection->createCommand($sql1)->execute();    // internal    $transaction2 = $connection->beginTransaction();    try {        $connection->createCommand($sql2)->execute();        $transaction2->commit();    } catch (Exception $e) {        $transaction2->rollBack();    }    $transaction1->commit();} catch (Exception $e) {    $transaction1->rollBack();}

-----------------------------主从配置--------------------------------------------

[    'class' => 'yii\db\Connection',    // master     'dsn' => 'dsn for master server',    'username' => 'master',    'password' => '',    // slaves    'slaveConfig' => [        'username' => 'slave',        'password' => '',        'attributes' => [            // use a smaller connection timeout            PDO::ATTR_TIMEOUT => 10,        ],    ],    'slaves' => [        ['dsn' => 'dsn for slave server 1'],        ['dsn' => 'dsn for slave server 2'],        ['dsn' => 'dsn for slave server 3'],        ['dsn' => 'dsn for slave server 4'],    ],]

更多详情参考:

来源地址:

转载于:https://www.cnblogs.com/yhdsir/p/5181475.html

你可能感兴趣的文章
Add Two Numbers
查看>>
使用AspNetPager分页控件对动态查询的结果进行Url分页
查看>>
ECSHOP2.7.3删除后台左侧菜单中的云服务中心
查看>>
3月31日工作日志
查看>>
今天发现一些很有意思的ubuntu命令
查看>>
数据类型
查看>>
模板文件是否有大小限制?
查看>>
vs 操作快捷键
查看>>
监听器和过滤器
查看>>
Java核心技术卷一基础知识-第6章-接口与内部类-读书笔记
查看>>
使用coding.net来托管源码(可以免费存放私有项目的哦)(转载)
查看>>
osx snow leopard下用homebrew 安装php5.3 + php-fpm
查看>>
在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke
查看>>
PHP代码实现二分法查找
查看>>
window无法启动mongodb服务:系统找不到指定的文件错误的解决方法
查看>>
VBScript开发Excel常见问题
查看>>
【GNOME 边框】GNOME窗口无边框
查看>>
stm32串口之存储与解析
查看>>
替换SQL字段中的换行符,回车符
查看>>
$("#left a",$p)的意思
查看>>