如何在ZF2中添加一个选择?

时间:2015-08-28 12:07:45

标签: php select zend-framework where

首先,你好!=)

我想知道是否有人知道如何在诸如

之类的地方写一个选择
SELECT my_column
FROM my_table
WHERE field_1 = something
AND field_2 = ( SELECT field_2
                FROM my_table_2
                WHERE my_field = $myParam );

我知道如何在没有select:

的情况下编写此查询
//This part shouldn't matter, it's just my way of connecting to table database
$select = $mytable1->getTableGateway()->getSQL()->select();

//This is where the fun begin
$select->colunms(array('my_column'))
       ->where(array('field_1' => 'something', 'field_2' => ??);

尝试1: 使用另一个允许我连接到另一个基础的变量似乎不起作用,因为它当然不是数组或任何东西......

$select_2 = $myTable2->tableGateway->getSQL()->select();

$select_2->colunms(array('field_2'))
         ->where(array('my_field' => $myParam);
$select->colunms(array('my_column'))
       ->where(array('field_1' => 'something', 'field_2' => $select_2);

我尝试添加类似的内容:

$var= $myTable2->getTableGateway()->selectWith($select_2);
//and then
$select->colunms(array('my_column'))
       ->where(array('field_1' => 'something', 'field_2' => $var->toArray());

它也不起作用,因为它当然不是一行......

我不认为foreach是非常必要的

在我的想法走得太远之前有任何想法吗? 提前谢谢

1 个答案:

答案 0 :(得分:1)

在ZF1中它的工作原理如下:

Locale

老实说,我不确定它是否适用于ZF2,但尝试添加通配符'?'到你的where子句。

最好,