Zend_Db_Table - обновление не работает - PullRequest
2 голосов
/ 13 марта 2010

Код не работает.

// $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 Ответ

4 голосов
/ 13 марта 2010

Вам нужно использовать экземпляр Zend_Db_Expr (выражение SQL), чтобы заставить это работать (не проверено):

$counter->update(array('hits' => new Zend_Db_Expr( 'hits+1' ) ), 'id = 1');

... или что-то подобное, я считаю, должно работать. Сообщите, если это не сработает, и я приду проверенный ответ.

UPDATE:
Хорошо, я протестировал его, и он работает, при условии, что вы теряете кавычки вокруг id в предложении where id должен интерпретироваться не как буквенная строка, а как имя столбца. Может быть, вы хотите использовать кавычки вместо? Например, «id» = 1. Это правильный способ указать идентификатор для MySQL.

...