How can i bind parameter in zend framework 2 using tablegateway, here is the code i am using
$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);
please suggest me a secure query builder code
You are trying to bind parameter in Adapter not in TableGateway.
It can be done on many ways, but example that you post
$id = 123;
$res = $adapter->query(
"SELECT * FROM TABLE WHERE SOME_ID = ? AND STATUS = 1", [$id]
);
var_dump($res->current());
There is a second parameter in function query() which is
@param string|array|ParameterContainer $parametersOrQueryMode
So you can play little bit with this option(s)... also check function Zend\Db\Adapter\Adapter::query();
Easier way is to use TableGateway:
$res = $this->tableGateway->select(['SOME_ID' => $id]);
$res->current(); // than you can use also toArray(), current(), etc.