rdbcommand

Выкладываем свои наработки
Ответить
Аватара пользователя
RSol
Сообщения: 325
Зарегистрирован: 2010.05.07, 08:36
Откуда: Северодонецк, Украина
Контактная информация:

rdbcommand

Сообщение RSol » 2012.09.21, 08:03

Расширение для работы с MySQL:
  • INSERT INTO table (field) VALUES (1),(2)....
  • INSERT IGNORE
  • INSERT ... ON DUPLICATE KEY UPDATE
Требования
------------ Установка
-------
  • Скопируйте "RDbCommand.php" и "RDbConnection.php" в "components" директорию
  • Сконфигурируйте секцию db переметром 'class'

Код: Выделить всё

    'db' => array(
        'class' => 'RDbConnection',
        'connectionString' => 'mysql:host=localhost;dbname=database',
        'emulatePrepare' => true,
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
        'schemaCachingDuration' => 3600,
        'enableProfiling' => true,
        'tablePrefix' => '',
        'enableParamLogging' => true,
    );
 
Примеры использования
-------

MULTI INSERT

Код: Выделить всё

    Yii::app()->db->createCommand()->insert('table', array(
        array('field'=>1),
        array('field'=>2),
        array('field'=>3),
        array('field'=>4),
        array('field'=>5),
        ...
        array('field'=>'n'),
    ));
 
INSERT IGNORE ...

Код: Выделить всё

    Yii::app()->db->createCommand()->insertIgnore('table', array(
        'keyfield'=>1,
        'field'=>0,
    ));
 
INSERT ... ON DUPLICATE KEY UPDATE

Код: Выделить всё

    Yii::app()->db->createCommand()->insertUpdate('table', array(
        'keyfield'=>1,
        'field'=>0,
    ), array(
        'field'=>new CDbExpression('field+1'),
    ));
 

Аватара пользователя
ksetrin
Сообщения: 81
Зарегистрирован: 2015.03.06, 10:00
Контактная информация:

Re: rdbcommand

Сообщение ksetrin » 2015.05.29, 14:55

Для yii2 такие возможности не писали?

Аватара пользователя
RSol
Сообщения: 325
Зарегистрирован: 2010.05.07, 08:36
Откуда: Северодонецк, Украина
Контактная информация:

Re: rdbcommand

Сообщение RSol » 2015.05.29, 14:57

Нет, но там много есть по умолчанию.

Аватара пользователя
ksetrin
Сообщения: 81
Зарегистрирован: 2015.03.06, 10:00
Контактная информация:

Re: rdbcommand

Сообщение ksetrin » 2015.06.02, 09:40

RSol писал(а):Нет, но там много есть по умолчанию.
Это верно, правда у Yii2 позиция писать только универсальные решения
Приходится особенности для тех или иных БД дописывать самостоятельно.
Была задача реализовать INSERT ... ON DUPLICATE KEY UPDATE, реализовал конечно, но не самым красивым образом, в обход AR получилось

Аватара пользователя
RSol
Сообщения: 325
Зарегистрирован: 2010.05.07, 08:36
Откуда: Северодонецк, Украина
Контактная информация:

Re: rdbcommand

Сообщение RSol » 2015.06.02, 09:53

Тут вот есть реализация:

https://github.com/Filsh/yii2-platform/ ... nd.php#L92

Ответить