(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)
PDO::query — Bereitet eine SQL-Anweisung ohne Platzhalter vor und führt sie aus
$query
, ?int $fetchMode
= PDO::FETCH_COLUMN, int $colno
): PDOStatement|false$query
,$fetchMode
= PDO::FETCH_CLASS,$classname
,$constructorArgs
$query
, ?int $fetchMode
= PDO::FETCH_INTO, object $object
): PDOStatement|falseMit PDO::query() wird eine SQL-Anweisung in einem einzigen Funktionsaufruf vorbereitet und ausgeführt und die Anweisung als PDOStatement-Objekt zurückgegeben.
Bei einer Abfrage, die mehrmals ausgeführt werden soll, wird die Effizienz verbessert, indem ein PDOStatement-Objekt mit PDO::prepare() vorbereitet und die Anweisung mit mehreren Aufrufen von PDOStatement::execute() ausgeführt wird.
Wenn vor dem nächsten Aufruf von PDO::query() nicht alle Daten einer Ergebnismenge abgerufen werden, schlägt der Aufruf möglicherweise fehl. Deshalb sollten die mit dem PDOStatement-Objekt verbundenen Datenbankressourcen mittels PDOStatement::closeCursor() freigegeben werden, bevor PDO::query() erneut aufgerufen wird.
Hinweis:
Wenn
query
Platzhalter enthält, muss die Anweisung mit der Methode PDO::prepare() vorbereitet und mit der Methode PDOStatement::execute() ausgeführt werden.
query
Die SQL-Anweisung, die vorbereitet und ausgeführt werden soll
Wenn das SQL Platzhalter enthält, müssen stattdessen die Methoden PDO::prepare() und PDOStatement::execute() verwendet werden. Wenn es der Treiber unterstützt, kann das SQL alternativ mittels PDO::quote() mit korrekt formatierten Daten manuell vorbereitet werden, bevor PDO::query() aufgerufen wird.
fetchMode
Der voreingestellte Abrufmodus für das zurückgegebene
PDOStatement. Es muss eine der
PDO::FETCH_*
-Konstanten
sein.
Wenn dieses Argument an die Funktion übergeben wird, werden die restlichen Argumente so behandelt, als ob PDOStatement::setFetchMode() für das resultierende Anweisungsobjekt aufgerufen wurde. Die nachfolgenden Argumente hängen vom gewählten Abrufmodus ab.
Gibt ein PDOStatement-Objekt zurück.
Bei einem Fehler wird false
zurückgegeben.
Gibt einen Fehler der Stufe E_WARNING
aus, wenn das Attribut PDO::ATTR_ERRMODE
auf PDO::ERRMODE_WARNING
gesetzt ist.
Löst eine PDOException aus, wenn das Attribut PDO::ATTR_ERRMODE
auf PDO::ERRMODE_EXCEPTION
gesetzt ist.
Beispiel #1 SQL ohne Platzhalter kann mit PDO::query() ausgeführt werden
<?php
$sql = 'SELECT name, color, calories FROM fruit ORDER BY name';
foreach ($conn->query($sql) as $row) {
print $row['name'] . "\t";
print $row['color'] . "\t";
print $row['calories'] . "\n";
}
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
apple red 150 banana yellow 250 kiwi brown 75 lemon yellow 25 orange orange 300 pear green 150 watermelon pink 90