Zend_Db_Table - обновление не работает
Код кажется не работает.
// $counter is an instance of Zend_Db_Table_Abstract
$counter->update(array('hits' => 'hits+1'), '"id" = 1');
Я заглянул в профилировщик БД и нашел следующий запрос:
UPDATE `downloads` SET `hits` = ? WHERE ("id" = 1)
1 ответ
Решение
Вам нужно использовать экземпляр Zend_Db_Expr
(выражение SQL), чтобы заставить это работать (не проверено):
$counter->update(array('hits' => new Zend_Db_Expr( 'hits+1' ) ), 'id = 1');
... или что-то подобное, я считаю, должно работать. Сообщите, если это не сработает, и я найду проверенный ответ.
ОБНОВИТЬ:
Хорошо, я проверил, и это работает, при условии, что вы теряете цитаты вокруг id
в пункте, где. id
не следует интерпретировать как буквенную строку, а как имя столбца. Может быть, вы хотите использовать кавычки вместо? Например, "id" = 1. Это правильный способ указать идентификатор для MySQL.