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() вернёт количество добавленных записей.
Поддержать автора
Все статьи создаются и поддерживаются одним человеком,
если вам нравится контент, вы можете поддержать автора сайта
