0

我从数据库表中获取一些数据tableA,需要返回'name'div 标签内的列。

$divtag1 = '<div style="color:#1569C7; font-weight:bold">';
$select = $this->select()
->from(array('ta' => 'tableA'),
array('ta.id', 
      'name' => new Zend_Db_Expr("concat($divtag1 . ta.name . '</div>')"),
      'date' => new Zend_Db_Expr("date(ta.date)")
));

$result = $this->getAdapter()->fetchAll($select);

我收到一个错误:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
. ta.name . '
') AS `name`, da' 

问题是 concat() 函数正在为自己解释 $divtag1 中的引号,我不希望这样。有人可以帮我解决这个问题吗?

谢谢你的帮助。

4

2 回答 2

2

尝试

'name' => new Zend_Db_Expr("concat('$divtag1', ta.name, '</div>')"),
于 2012-07-16T22:34:42.253 回答
0

有两个更正:

  1. 引用 $divtag1 变量;谢谢@Parahat Melayev
  2. 在 concat() 中使用逗号而不是点。

最终解决方案是:

$divtag1 = '<div style="color:#1569C7; font-weight:bold">';
$select = $this->select()
->from(array('ta' => 'tableA'),
array('ta.id', 
      'name' => new Zend_Db_Expr("concat($divtag1 , ta.name , '</div>')"),
      'date' => new Zend_Db_Expr("date(ta.date)")
));



$result = $this->getAdapter()->fetchAll($select);
于 2012-07-16T22:52:34.273 回答