我在我的導航模型中定義了一個執行查詢的函數,我想知道是否有更多的「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;
}
define * Zendy * way please – Gordon 2010-04-07 21:41:52
「Zendy」我的意思是使用Zend提供的抽象,而不是像上面那樣編寫直接查詢。 – Sonny 2010-04-07 22:00:40