Daher muss man entweder ein neues Gatewayobjekt oder ein SQLobjekt erzeugen. Im folgenden Beispiel habe ich ein SQL -Objekt verwendet:
Zuerst lädt man die entsprechenden Klassen:
use Zend\Db\TableGateway\TableGateway;
use Zend\Db\Sql\Sql;
use Zend\Db\Sql\Where;
In der Methode geht man dann wie folgt vor:
// Adapter Einstellungen holen -> die sind in der Sekelleton Application unter: Config / Autoload / local.php bzw. global.php zu finden:
$mysql_adapter=$this->tableGateway->getAdapter();// Falls man die Einstellungen sehen möchte:
//echo var_dump ($mysql_adapter);// Erzeugen eines neuen SQL Objektes, falls man möchte kann man hier schon die Tabelle übergeben (Achtung: Join abfragen funktionieren dann nicht):
$sql = new Sql($mysql_adapter);// Dann die Select Anweisung erstellen:
$select = $sql->select();// Auswählen der Tabelle
$select->from('tabelle');// Auswählern der WHERE Anweisung
$select->where('spalte='.$wert);// SQL-Anweisung anzeigen lassen:
echo $select->getSqlString();// SQL Anweisung ausführbar machen:
$selectString = $sql->getSqlStringForSqlObject($select);// Und ausführen:
$result = $mysql_adapter->query($selectString, $mysql_adapter::QUERY_MODE_EXECUTE);// Falls man das Ergebnis direkt auswerten möchte, kann man das mit use Zend\Db\Adapter\Driver\ResultInterface; und
use Zend\Db\ResultSet\ResultSet; tun:
//Neues result-Objekt erzeugen und initialisieren
$resultSet = new ResultSet;//Jede Zeile auswerten:
$resultSet->initialize($result);
foreach ($resultSet as $row) {
echo $row->spalte . PHP_EOL
}
Keine Kommentare:
Kommentar veröffentlichen