내 탐색 모델에서 쿼리를 실행하는 함수를 정의했으며 쿼리를 생성/실행하는 "Zendy"방법이 더 있는지 궁금합니다. 내가 사용하고있는 쿼리는 Bill Karwin에서 another thread here에 대한 임의의 레코드 순서 설정을 제안했습니다. 준비된 문을 사용하여 시도했지만 SIGN() 함수의 값이 인용 된.Zend 데이터베이스 어댑터 - 복잡한 MySQL 쿼리
MySQL 용 PDO 어댑터를 사용하고 있습니다.
/**
*
*/
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;
}
* Zendy * way please – Gordon
"Zendy"는 위와 같이 직접 쿼리를 작성하는 대신 Zend가 제공하는 추상화를 사용함을 의미합니다. – Sonny