2015-04-05 88 views
0

我想使用MySQL的CONCAT功能,使用zf2(Zend Framework)。zf2追加到現有的列內容

如何追加到現有的文本列值?

舊值:image1Path
新值:image1Path ** image2path。

我在模型表文件中的函數。

public function updatePresImages($orderId,$newImageName) 
{ 
    $data = array(
     'prescription_upload_path'  => ??, 
     'date_updated' => date('Y-m-d H:i:s'), 
    ); 
    $updateStatus=$this->tableGateway->update($data, array('user_medicine_order_id' => $orderId)); 
    return $updateStatus;   
} 
+0

我假設你正在使用SQL。你正在執行選擇查詢嗎?什麼是列名? – EresDev 2015-04-05 11:28:08

+0

不,不是直接的SQL,我正在查找使用zend gramework2.Update查詢同一列追加到exsting內容 – Bhargava 2015-04-05 11:30:23

+0

您應該發佈一些代碼。需要看你如何處理數據庫。 – EresDev 2015-04-05 11:32:30

回答

0

從您的代碼我可以看到,您使用TableGatway。也許你可以試試這個:

public function updatePresImages($orderId,$newImageName) 
{ 
    $sql = "UPDATE yourTable SET prescription_upload_path= CONCAT(prescription_upload_path, '##', '$newImageName'), date_updated=now() WHERE user_medicine_order_id= '$orderId'" 
    $updateStatus=$this->tableGateway->getAdapter()->driver->getConnection()->execute($sql); 

    return $updateStatus;   
} 
+0

感謝您的解答和迴應! – Bhargava 2015-04-06 06:36:51

0

表格網關實現需求更新的方式是使用Zend Expression。

在頂部模型類

use Zend\Db\Sql\Expression; 

包括以下使用語句然後

$this->tableGateway->update(array(
     'prescription_upload_path' => new Expression('CONCAT(prescription_upload_path, "##", "'.$newImageName.'")'), 
     'date_updated' => new Expression('now()') 
    ), 
    array(
     'user_medicine_order_id' => $orderId, 

    ) 
); 
+0

,謝謝,這是更合適的答案,但我已經接受了以前的答案,我知道了我的時間正確... – Bhargava 2015-04-06 09:49:21

+0

沒問題,你仍然可以upvote,如果它的價值。 – 2015-04-06 09:57:22

+0

對於遲到的回覆感到抱歉,我沒有足夠的信譽來upvote! – Bhargava 2015-04-08 12:33:36