Wie zum ausführen von raw-SQL-Abfragen mit dem Zend Framework 2
Gibt es eine Möglichkeit zum ausführen einer SQL-String als Abfrage in Zend Framework 2?
Ich habe einen string wie:
$sql = "SELECT * FROM testTable WHERE myColumn = 5"
nun möchte ich ausführen, diese Zeichenfolge direkt.
InformationsquelleAutor der Frage nopaws | 2013-03-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
S. Doku: Zend\Db → Zend\Db\Sql
InformationsquelleAutor der Antwort automatix
Geben Sie nur den sql-string an die db-adapter wie diesem:
Und wenn Sie möchten, um Parameter:
EDIT: Bitte beachten Sie, dass die query-Methode funktioniert nicht immer, gibt ein resultset. Wenn Ihr eine Ergebnismenge produzieren Abfrage(
SELECT
) es gibt eine\Zend\Db\ResultSet\ResultSet
sonst(INSERT
UPDATE
DELETE
...) wird es wieder ein\Zend\Db\Adapter\Driver\ResultInterface
.Und wenn Sie den zweiten Parameter leer, erhalten Sie eine
\Zend\Db\Adapter\Driver\StatementInterface
die Sie ausführen können.InformationsquelleAutor der Antwort Weteef
Wenn Sie tableGateway können Sie Ihre raw-SQL-Abfrage mit dieser Aussage,
wo $sql bezieht sich auf Ihre raw-query. Dies kann nützlich für Abfragen, die keine systemeigene ZF2 Gegenstück wie TRUNCATE /INSERT-SELECT-Anweisungen.
InformationsquelleAutor der Antwort
Wenn Sie
EntityManager
$em auf Ihre Hände, die Sie tun können, so etwas wie dieses:Ich denke, dass diese Methode für die Ausführung komplexer Abfragen ist am besten für Zend. Aber vielleicht bin ich nicht sehr schlau im Zend noch. Werden froh um zu sehen, ob es hilft jemandem.
InformationsquelleAutor der Antwort FlameStorm