Увеличение значений с использованием Zend_DB_Table Raw SQL - PullRequest
0 голосов
/ 13 сентября 2009

У меня есть веб-сайт, где пользователь может загружать изображения для недвижимости.
Структура таблицы:

image_id
property_id
userid
filename
thumbfilename
display_order
timestamp

Сценарий: Когда пользователь загружает несколько изображений, он / она ДОЛЖЕН иметь возможность установить основную фотографию из своих загруженных изображений для указанного свойства.

Код:

$sql = 'UPDATE property_images SET display_order = display_order + 1 WHERE property_id = "' . $this->_request->getParam('propertyid') . '"';
$images->getAdapter()->fetchAll($sql);
$images->update(array("display_order" => 1), 'image_id = "' . $this->_request->getParam('imageid') . '"');

Вопрос: Я получаю «общую ошибку» при вызове $ images-> getAdapter () -> fetchAll (); SQL, однако, успешно выполнен, но Zend_DB_Table выдает исключение и не будет переходить к следующей команде. Любые идеи / предложения будут оценены.

Ответы [ 2 ]

0 голосов
/ 13 сентября 2009

фигу,

Решение:

$ sql = 'ОБНОВЛЕНИЕ property_images SET display_order = display_order + 1 WHERE property_id = "1004" AND display_order <3; $ Images-> getAdapter () -> запрос ($ SQL); $ images-> update (array ("display_order" => 1), 'image_id = "2003"');

Это позволит захватить третье изображение и установить его в 1 после установки изображений, которые имели порядок отображения от 1 и 2 до 2 и три соответственно.

0 голосов
/ 13 сентября 2009

1) Во-первых, осознайте, что вам нужно исправить свой код, чтобы избежать пользовательского ввода. В настоящее время вы очень уязвимы для SQL-инъекций.

2) Почему вы передаете запрос UPDATE в fetchAll ()?

3) Посмотрите на Zend_Db_Expr

...