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.

Другие вопросы по тегам