2016-06-09 10 views
0

Wie kann ich binden Parameter in Zend Framework 2 tablegateway verwenden, hier ist der Code iWie kann ich Parameter in ZF2 tablegateway binden

$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); 

mir bitte einen sicheren Query Builder Code

Antwort

1

Sie verwende vorschlagen versuchen, Parameter in Adapter nicht in TableGateway zu binden.
Es kann auf viele Arten erfolgen, aber beispielsweise, dass Sie

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

Es gibt einen zweiten Parameter in der Funktion query() die

@param string|array|ParameterContainer $parametersOrQueryMode 

So kann man wenig spielen Post mit diese Option (s) ... auch Funktion überprüfen Zend\Db\Adapter\Adapter::query();


einfacher Weg ist Tabl zu verwenden eGateway:

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

danke tasmaniski für Ihre wertvolle Antwort –