0

データベース テーブルからデータを取得しており、div タグ内tableAの列を返す必要があります。'name'

$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

以下の2点の修正がありました。

  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 に答える