2016-06-09 52 views
0

如何使用tablegateway我绑定参数Zend框架2,这里是我使用我怎样才能在ZF2 tablegateway绑定参数

$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

你的代码试图在Adapter中绑定参数而不是在TableGateway中。
它可以在许多方式进行,但如您发布

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

还有第二个参数的函数查询()这是

@param string|array|ParameterContainer $parametersOrQueryMode 

,这样可以起到一点与此选项...还检查功能Zend\Db\Adapter\Adapter::query();


更简单的方法是使用Tabl eGateway:

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

谢谢tasmaniski为您提供宝贵的答案 –