@sylvester
В Yii2 для формирования запросов в базу данных используется объект QueryBuilder. Он позволяет создавать запросы используя активные записи или нативный SQL.
Примеры:
- Создание запроса для получения всех пользователей из таблицы user
1
2
3
4
|
$query = new yiidbQuery();
$users = $query->select('*')
->from('user')
->all();
|
- Создание запроса для получения конкретного пользователя
1
2
3
4
5
|
$query = new yiidbQuery();
$user = $query->select('*')
->from('user')
->where(['id' => 1])
->one();
|
- Использование активных записей для создания запроса
1
|
$user = appmodelsUser::find()->where(['id' => 1])->one();
|
- Использование нативного SQL
1
|
$users = Yii::$app->db->createCommand('SELECT * FROM user')->queryAll();
|
Чтобы создать запрос на вставку данных, используйте методы insert()
и batchInsert()
. Для обновления данных используйте метод update()
, а для удаления - delete()
.
Примеры:
- Вставка одной записи
1
2
3
4
5
|
Yii::$app->db->createCommand()->insert('user', [
'username' => 'test',
'email' => '[email protected]',
'password' => 'hash',
])->execute();
|
- Вставка нескольких записей
1
2
3
4
|
Yii::$app->db->createCommand()->batchInsert('user', ['username', 'email', 'password'], [
['test1', '[email protected]', 'hash'],
['test2', '[email protected]', 'hash'],
])->execute();
|
- Обновление данных
1
|
Yii::$app->db->createCommand()->update('user', ['status' => 1], ['id' => 1])->execute();
|
- Удаление данных
1
|
Yii::$app->db->createCommand()->delete('user', ['status' => 0])->execute();
|
При формировании запросов не забывайте обрабатывать возможные ошибки, например, используя конструкцию try-catch.