如何在zf2 tablegateway中绑定参数

时间:2016-06-09 09:06:52

标签: zend-framework2 zend-db

如何使用tablegateway绑定zend框架2中的参数,这是我正在使用的代码

$adapter     =   $this->tableGateway->getAdapter(); 
$result      =   $adapter->query(
              "SELECT * "
             . "FROM TABLE "
             . "WHERE SOME_ID = $SOME "
             . "AND STATUS = 1 "          
);
$dataSource  =   $result->execute();        
$statement   =   $dataSource->getResource();
$result      =   $statement->fetchAll(\PDO::FETCH_OBJ);

请为我建议一个安全的查询构建器代码

1 个答案:

答案 0 :(得分:1)

您正在尝试将适配器中的参数绑定在TableGateway中 它可以通过多种方式完成,但您发布的示例

$id  = 123;
$res = $adapter->query(
    "SELECT * FROM TABLE WHERE SOME_ID = ? AND STATUS = 1", [$id]
);
var_dump($res->current());

函数 query()中有第二个参数

@param string|array|ParameterContainer $parametersOrQueryMode 

所以你可以使用这个选项玩一点...也检查函数Zend\Db\Adapter\Adapter::query();

更简单的方法是使用TableGateway:

$res = $this->tableGateway->select(['SOME_ID' => $id]);
$res->current(); // than you can use also toArray(), current(), etc.