SQL-запрос

Выборка записей

Выборка записей происходит через методы queryAll() и queryOne().

// выборка несколько записей
Yii::$app->db->createCommand('SELECT id,title,content FROM post')->queryAll();

// выборка одной записи
Yii::$app->db->createCommand('SELECT id,title,content FROM post WHERE id=:id', ['id' => 28])->queryOne();

Если надо подсчитать количество записей, то можно использовать метод queryScalar().

// выборка несколько записей
Yii::$app->db->createCommand('SELECT COUNT(id) FROM post')->queryScalar(); // 14

Создание, обновление и удаление записей

Для создания, обновления и удаления записей используется метод execute().

// Добавление записи
$params = ['title' => 'Имя поста', 'content' => 'Контент поста'];
Yii::$app->db->createCommand('INSERT INTO post(title,content) VALUES(:title, :content)', $params)->execute();

// Обновление записи
$params = ['id' => 14, 'title' => 'Имя поста', 'content' => 'Контент поста'];
Yii::$app->db->createCommand('UPDATE post SET title=:title, content=:content WHERE id=:id', $params)->execute();

// Удаление записи
$params = ['id' => 14];
Yii::$app->db->createCommand('DELETE FROM post WHERE id=:id', $params)->execute();

Также можно использовать методы insert()update() и delete().

// Добавление записи
$params = ['title' => 'Имя поста', 'content' => 'Контент поста'];
Yii::$app->db->createCommand()->insert('post', $params)->execute();

// Обновление записи
$params = ['title' => 'Имя поста', 'content' => 'Контент поста'];
Yii::$app->db->createCommand()->update('post', $params, 'id=14')->execute();

// Удаление записи
Yii::$app->db->createCommand()->delete('post', 'id=14')->execute();

В обоих случаях метод execute() возвращает количество затронутых записей (сколько было обновлено или удалено).

Добавить несколько записей

Добавить несколько записей за один запрос можно через метод batchInsert().

$pages = [
    ['Имя страницы', 'Контент страницы'],
    ['Имя второй страницы', 'Контент второй страницы'],
    ['Имя третьей страницы', 'Контент третьей страницы'],
];
Yii::$app->db->createCommand()->batchInsert('post', ['title', 'content'], $pages)->execute();

Метод execute() вернёт количество добавленных записей.