====== Yii2 для чайников ======
> FIXME Ещё в разработке
===== SQL =====
Запрос SELECT
# Получить SQL код
# SELECT * FROM `table1` `t1` LEFT JOIN `table2` `t2` ON t2.t1id = t1.id
# LEFT JOIN `table3` `t3` ON t3.id = t2.table3_id WHERE (`t1`.`id`=:qp0) AND (t3.name="raw")
$sql = (new \yii\db\Query)
-> select('*')
-> from('table1 t1')
-> leftJoin('table2 t2', 't2.t1id = t1.id')
-> leftJoin('table3 t3', 't3.id = t2.table3_id')
-> where(['t1.id' => 80])
-> andWhere('t3.name="raw"')
-> createCommand()->getSql();
# Примеры where
-> andWhere('>=', 'sc.date_from', $date_from]) # x >= $date_from
-> andWhere('<=', 'sc.date_from', $date_to]) # y <= $date_to
-> andWhere('!=', 'sc.active', 0 ]) # z != 0
-> andWhere(['id' => [1, 2, 3]]) # where id in (1, 2, 3)
-> andWhere(['not in', 'nid', [1, 2, 3]]); # where nid not in (1, 2, 3)
# Строк получено цифрой
$count = (new \yii\db\Query)->from('table1')->count();
# Всё массивом
$array = (new \yii\db\Query)->from('table1')->all();
# Одно значение в 1м поле 1й строки
$passwd = (new \yii\db\Query)->select('passwd')->from('table')->where(['id'=>5])->scalar()
# Массив из 1й колонки
$arr = (new Yii\db\Query)->from('private')->groupBy('user_id')->orderBy('user_id')->select('user_id u')->column();
Запрос INSERT
# Примеры insert
# Вставить 1 строчку
$success = \Yii::$app->db->createCommand()
->insert('phonebook', ['name' => 'Test', 'phone' => '+371 27777776' ])
->execute();
# Вставить много
$success = \Yii::$app->db->createCommand()
->batchInsert('phonebook', ['name', 'phone'], [
['Test1', '+371 27777777'],
['Test2', '+371 27777778']
])->execute();