2

我正在尝试使用 Zend_Db 进行类似的更新:

UPDATE `TABLE` SET
  column = column + 'new value'
WHERE
  foo = 'bar'

你们中有人做过吗?是否可以?谢谢

4

1 回答 1

2

在Zend_Db_Expr的帮助下,这是可能的。

例子:

$newValue = 101;
$data     = array('column' =>
                  new Zend_Db_Expr($db->quoteInto('column + ?', $newValue)));
$where    = $db->quoteInto('foo = ?', 'bar');

$updated = $db->update('TABLE', $data, $where);

结果查询:

UPDATE `TABLE` SET `column` = `column` + 101 WHERE `foo` = 'bar';

+如果您询问如何附加字符串,则代码类似,但在处理字符数据时不能使用运算符,而是使用CONCAT()

例如,将$data数组更改为:

$data  = array('varcharCol' =>
               new Zend_Db_Expr(
                   $db->quoteInto('CONCAT(varcharCol, ?)', ' append more text!')
         ));
于 2012-06-05T17:44:23.867 回答