Mysql
 sql >> Database >  >> RDS >> Mysql

ZF2 disinfetta le variabili per le query DB

Puoi passare i parametri quando esegui..

 $statement = $this->getAdapter()->query("Select * from test WHERE id = ?");
 $result = $statement->execute(array(99));

 $resultSet = new ResultSet;
 $resultSet->initialize($result);

Puoi anche passarli direttamente al metodo di query

 $statement = $this->getAdapter()->query(
    "Select * from test WHERE id = ?", 
    array(99)
 );
 $result = $statement->execute();

 $resultSet = new ResultSet;
 $resultSet->initialize($result);

Entrambi produrranno la query "Seleziona * dal test WHERE id ='99'"

Se vuoi usare parametri denominati:

$statement = $this->getAdapter()->query("Select * from test WHERE id = :id");
$result = $statement->execute(array(
    ':id' => 99
));

$resultSet = new ResultSet;
$resultSet->initialize($result);

Se vuoi citare i nomi delle tabelle/campi ecc:

$tablename = $adapter->platform->quoteIdentifier('tablename');

$statement = $this->getAdapter()->query("Select * from {$tablename} WHERE id = :id");
$result = $statement->execute(array(
    ':id' => 99
));