2015-04-05 61 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