Я определил функцию в моей модели навигации, которая выполняет запрос, и мне было интересно, есть ли способ генерации/выполнения запроса «Zendy». Запрос, который я использую, был предложен Bill Karwin по адресу another thread here для установки произвольного порядка записи. Я попытался использовать подготовленный оператор, но значения в функции SIGN() были процитированы.Адаптер базы данных Zend - сложный запрос MySQL
Я использую адаптер PDO для MySQL.
/**
*
*/
public function setPosition($parentId, $oldPosition, $newPosition)
{
$parentId = intval($parentId);
$oldPosition = intval($oldPosition);
$newPosition = intval($newPosition);
$this->getAdapter()->query("
UPDATE `navigation`
SET `position` = CASE `position`
WHEN $oldPosition THEN $newPosition
ELSE `position` + SIGN($oldPosition - $newPosition)
END
WHERE `parent_id` = $parentId
AND `position` BETWEEN LEAST($oldPosition, $newPosition)
AND GREATEST($oldPosition, $newPosition)
");
return $this;
}
define * Zendy * way please – Gordon
От «Zendy» Я имею в виду использование абстракции, которую предоставляет Zend, а не запись прямого запроса, как указано выше. – Sonny