Как правильно сформировать запрос в базу данных yii2?

Пользователь

от sylvester , в категории: PHP , 9 месяцев назад

Как правильно сформировать запрос в базу данных yii2?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от ciara , 9 месяцев назад

@sylvester 

В Yii2 для формирования запросов в базу данных используется объект QueryBuilder. Он позволяет создавать запросы используя активные записи или нативный SQL.


Примеры:

  1. Создание запроса для получения всех пользователей из таблицы user
1
2
3
4
$query = new yiidbQuery();
$users = $query->select('*')
    ->from('user')
    ->all();


  1. Создание запроса для получения конкретного пользователя
1
2
3
4
5
$query = new yiidbQuery();
$user = $query->select('*')
    ->from('user')
    ->where(['id' => 1])
    ->one();


  1. Использование активных записей для создания запроса
1
$user = appmodelsUser::find()->where(['id' => 1])->one();


  1. Использование нативного SQL
1
$users = Yii::$app->db->createCommand('SELECT * FROM user')->queryAll();


Чтобы создать запрос на вставку данных, используйте методы insert() и batchInsert(). Для обновления данных используйте метод update(), а для удаления - delete().


Примеры:

  1. Вставка одной записи
1
2
3
4
5
Yii::$app->db->createCommand()->insert('user', [
    'username' => 'test',
    'email' => '[email protected]',
    'password' => 'hash',
])->execute();


  1. Вставка нескольких записей
1
2
3
4
Yii::$app->db->createCommand()->batchInsert('user', ['username', 'email', 'password'], [
    ['test1', '[email protected]', 'hash'],
    ['test2', '[email protected]', 'hash'],
])->execute();


  1. Обновление данных
1
Yii::$app->db->createCommand()->update('user', ['status' => 1], ['id' => 1])->execute();


  1. Удаление данных
1
Yii::$app->db->createCommand()->delete('user', ['status' => 0])->execute();


При формировании запросов не забывайте обрабатывать возможные ошибки, например, используя конструкцию try-catch.