0
我需要在使用tablegateway的模型中編寫更新查詢。更新查詢sql如下。Zend Framewrok 2:如何使用tablegateway編寫自定義查詢
UPDATE `config_settings` SET `CS_value` = CASE `CS_option`
WHEN 'CATEGORY_BANNER_MIN_WIDTH' THEN '$data->CATEGORY_BANNER_MIN_WIDTH'
WHEN 'CATEGORY_BANNER_MAX_WIDTH' THEN '$data->CATEGORY_BANNER_MAX_WIDTH'
WHEN 'CATEGORY_PROMOTION_MIN_WIDTH' THEN '$data->CATEGORY_PROMOTION_MIN_WIDTH'
WHEN 'CATEGORY_PROMOTION_MAX_WIDTH' THEN '$data->CATEGORY_PROMOTION_MAX_WIDTH'
WHEN 'PRODUCT_LARGE_IMAGE_WIDTH' THEN '$data->PRODUCT_LARGE_IMAGE_WIDTH'
WHEN 'PRODUCT_MEDIUM_IMAGE_WIDTH' THEN '$data->PRODUCT_MEDIUM_IMAGE_WIDTH'
WHEN 'PRODUCT_SMALL_IMAGE_WIDTH' THEN '$data->PRODUCT_SMALL_IMAGE_WIDTH'
ELSE `CS_value`
END;
我不知道如何實現這一點。 tablegateway的更新方法只取表格字段名稱及其值。那麼如何編寫這個查詢。
我知道我可以執行此查詢使用db適配器原始sql查詢,但我不想這樣。除此之外,有時我們需要在tablegateway的select方法中進行一些自定義查詢。但是我發現在tablegateway沒有穩定的方式。
例如:
select sum(CASE WHEN answers.type = 'his' THEN 1 ELSE 3 END) AS totalScore
FROM users_questions_answers join answers on cast(answers.id as int(8))=
users_questions_answers.answer_id group by users_questions_answers.user_id
我怎麼能繼續在這種情況下。任何zend 2專家的建議將高度讚賞。 感謝您的關心。
您提到的方式不起作用 –
我已經更新了上述答案,請再次閱讀。 –
試過沒有雙引號。但給以下錯誤。 '字段列表中的未知列'CATEGORY_BANNER_MIN_WIDTH'。這意味着更新查詢指示CATEGORY_BANNER_MIN_WIDTH作爲表字段。對於您的信息,CATEGORY_BANNER_MIN_WIDTH是字段值。 –