Как в Yii1.1 реализовать обновление всех строк по атрибутам?

В Yii1.1 для обновления всех строк по атрибутам можно воспользоваться методом updateAll() модели ActiveRecord.

updateAll() позволяет выполнить обновление записей в базе данных с помощью SQL-запроса, используя указанные условия.

Синтаксис метода updateAll() выглядит следующим образом:

int updateAll(mixed $attributes, string $condition='', array $params=array())

Где:

- $attributes - массив атрибутов, которые нужно обновить. Ключи массива - имена атрибутов, а значения - новые значения. Например, array('name' => 'Новое имя'), обновит атрибут name значениями 'Новое имя' для всех строк, удовлетворяющих условию $condition.

- $condition - опциональный параметр, представляющий условие для выборки записей, которые нужно обновить. Например, 'status=:status', где :status - это параметр, и его значение можно передать через массив $params.

- $params - опциональный параметр, содержащий значения для параметров, указанных в $condition. Например, array(':status' => 1).

Пример использования updateAll():

// Обновить атрибут `status` для всех строк, у которых `name` равен 'John'
$count = User::model()->updateAll(
    array('status' => 1),
    'name=:name',
    array(':name' => 'John')
);

В данном примере атрибут status будет обновлен значением 1 для всех строк, у которых значение атрибута name равно 'John'. Метод updateAll() возвращает количество обновленных строк в базе данных.

Метод updateAll() можно использовать не только для обновления одного атрибута, но и для обновления нескольких атрибутов одновременно. Для этого нужно передать в $attributes соответствующий массив атрибутов и значений.

Если вы хотите обновить все строки без каких-либо условий, можно просто передать пустую строку в $condition. Например:

// Обновить все строки, установив атрибут `status` равным `0`
$count = User::model()->updateAll(
    array('status' => 0),
    ''
);

В данном примере все строки будут обновлены, и атрибут status будет установлен в значение 0.

Таким образом, метод updateAll() позволяет легко и эффективно обновлять все строки в базе данных с помощью указанных атрибутов и условий.