了解问题从具有2个参数的数据库中获取一行

问题描述 投票:0回答:1

我认为它可以找到,但事实并非如此。

我的模型类中有一个方法,如下所示:

public function getUnitbyName2($unitname, $ProjectID)
    {
        //$id = (int) $id;
        $rowset = $this->tableGateway->select(['Unitname' => $unitname], ['ProjectID' => $ProjectID]);
        $row = $rowset->current();
        if (! $row) {
//          throw new RuntimeException(sprintf(
//                  'Could not find row with identifier %d',
//                  $unitname
//                  ));
            $row=0;
        }
        return $row;
    }

如果我给出一个现有的unitname和一个不存在的project_ID,我希望得到一些0值。但我总是得到第一个项目中具有给定单位名称的单位数。单位名通常存在于几个不同的项目中。如果使用两个参数存在,该函数应该获得正确的记录。

我的问题是,使用AND连接的2个参数有什么问题?

zend-framework zend-db zend-framework3
1个回答
0
投票

AbstractTableGateway::select()接受一个参数,你传递2:你需要传递1,结合2个数组。将您的代码更改为:

$rowset = $this->tableGateway->select(['Unitname' => $unitname, 'ProjectID' => $ProjectID]);
© www.soinside.com 2019 - 2024. All rights reserved.