Rechercher une fonction PHP

oci_fetch_all

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch_allHolt mehrere Reihen einer Abfrage in ein zweidimensionales Array

Beschreibung

oci_fetch_all ( resource $statement , array &$output [, int $skip = 0 [, int $maxrows = -1 [, int $flags = OCI_FETCHSTATEMENT_BY_COLUMN + OCI_ASSOC ]]] ) : int

Holt mehrere Zeilen einer Abfrage in ein zweidimensionales Array. Standardmäßig werden alle Zeilen zurückgeliefert.

Diese Funktion kann nur einmal für jede Abfrage, die mit oci_execute() ausgeführt wurde, aufgerufen werden.

Erste Seite von PHP-Handbuch Inhaltsverzeichnis Haut

Parameter-Liste

statement

Der Identifizierer eines gültigen OCI8-Ausdrucks, der von oci_parse() erzeugt und von oci_execute() oder einem REF CURSOR-Ausdruck verwendet wird.

output

Die Variable, die die gelieferten Zeilen enthalten wird.

LOB-Spalten werden als Zeichenketten zurückgegeben, wo Oracle die Umwandlung unterstützt.

Informationen wie Daten und Typen geholt werden, sind der Dokumentation von oci_fetch_array() zu entnehmen.

skip

Die Anzahl der zu verwerfenden Anfangszeilen beim Holen des Ergebnisses. Standardwert ist 0, so dass von der ersten Zeile an zurückgegeben wird.

maxrows

Die Anzahl der zurückzugebenden Zeilen. Der Standardwert ist -1, was bedeutet dass alle Zeilen von skip + 1 an zurückgegeben werden.

flags

Der Parameter flags legt die Array-Struktur fest, und ob assoziative Arrays verwendet werden sollen.

oci_fetch_all() Array-Struktur-Modi
Konstante Beschreibung
OCI_FETCHSTATEMENT_BY_ROW Das äußere Array wird ein Unterarray pro Abfragezeile enthalten.
OCI_FETCHSTATEMENT_BY_COLUMN Das äußere Array wird ein Unterarray pro Abfragespalte enthalten. Das ist der Standardwert.

Arrays können entweder nach Spaltennamen oder numerisch indexiert werden. Nur ein Index-Modus wird zurückgegeben.

oci_fetch_all() Array-Index-Modi
Konstante Beschreibung
OCI_NUM Numerische Indizes werden für das Array jeder Spalte verwendet.
OCI_ASSOC Assoziative Indizes werden für das Array jeder Spalte verwendet. Das ist der Standardwert.

Der Additionsoperator "+" ist zu verwenden, um eine Kombination von Array-Struktur- und -Index-Modus zu wählen.

Für Spaltennamen, die Groß- und Kleinschreibung nicht unterscheiden, was bei Oracle der Standard ist, werden Arrayschlüssel in Großschreibung verwendet. Spalten, die Groß- und Kleinschreibung unterscheiden, verwenden die genaue Schreibweise. var_dump() kann auf dem output angewendet werden, um die richtige Schreibweise für jede Abfrage zu prüfen.

Abfragen, die mehr als eine Spalte mit demselben Namen haben, sollten Spaltenaliase verwenden. Andernfalls wird nur einer der Spalten in einem assoziativen Array auftauchen.

Erste Seite von PHP-Handbuch Inhaltsverzeichnis Haut

Rückgabewerte

Gibt die Anzahl der Zeile in output zurück, die 0 oder mehr sein kann. Im Fehlerfall wird FALSE zurückgegeben.

Erste Seite von PHP-Handbuch Inhaltsverzeichnis Haut

Beispiele

Beispiel #1 oci_fetch_all() Beispiel

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows oci_fetch_all($stid$res);

echo 
"$nrows Zeilen geholt<br>\n";
var_dump($res);

// die var_dump Ausgabe ist:
//    2 Zeilen geholt
//    array(2) {
//      ["POSTAL_CODE"]=>
//      array(2) {
//        [0]=>
//        string(6) "00989x"
//        [1]=>
//        string(6) "10934x"
//      }
//      ["CITY"]=>
//      array(2) {
//        [0]=>
//        string(4) "Rom"
//        [1]=>
//        string(6) "Venedig"
//      }
//    }

// ordentliche Ausgabe der Ergebnisse
echo "<table border='1'>\n";
foreach (
$res as $col) {
    echo 
"<tr>\n";
    foreach (
$col as $item) {
        echo 
"    <td>".($item !== null htmlentities($itemENT_QUOTES) : "")."</td>\n";
    }    
    echo 
"</tr>\n";
}
echo 
"</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #2 oci_fetch_all() Beispiel mit OCI_FETCHSTATEMENT_BY_ROW

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows oci_fetch_all($stid$resnullnullOCI_FETCHSTATEMENT_BY_ROW);

echo 
"$nrows Zeilen geholt<br>\n";
var_dump($res);

// die Ausgabe ist:
//    2 Zeilen geholt
//    array(2) {
//      [0]=>
//      array(2) {
//        ["POSTAL_CODE"]=>
//        string(6) "00989x"
//        ["CITY"]=>
//        string(4) "Rom"
//      }
//      [1]=>
//      array(2) {
//        ["POSTAL_CODE"]=>
//        string(6) "10934x"
//        ["CITY"]=>
//        string(6) "Venedig"
//      }
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #3 oci_fetch_all() mit OCI_NUM

<?php

$conn 
oci_connect('hr''welcome''localhost/XE');
if (!
$conn) {
    
$e oci_error();
    
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid oci_parse($conn'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows oci_fetch_all($stid$resnullnullOCI_FETCHSTATEMENT_BY_ROW OCI_NUM);

echo 
"$nrows Zeilen geholt<br>\n";
var_dump($res);

// die Ausgabe ist:
//    2 Zeilen geholt
//    array(2) {
//      [0]=>
//      array(2) {
//        [0]=>
//        string(6) "00989x"
//        [1]=>
//        string(4) "Rom"
//      }
//      [1]=>
//      array(2) {
//        [0]=>
//        string(6) "10934x"
//        [1]=>
//        string(6) "Venedig"
//      }
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Erste Seite von PHP-Handbuch Inhaltsverzeichnis Haut

Anmerkungen

Hinweis:

Die Verwendung von skip ist sehr ineffizient. All die zu überspringenden Zeilen sind in der Ergebnismenge, die von der Datenbank an PHP zurückgegeben wird. Dann werden sie verworfen. Es ist effizienter SQL zu nutzen, um Offset und Bereich der Zeilen in der Abfrage zu beschränken. Ein Beispiel kann der Dokumentation von oci_fetch_array() entnommen werden.

Hinweis:

Abfragen, die eine große Anzahl von Zeilen liefern, sind speichereffizienter, wenn eine Funktion wie oci_fetch_array(), die nur einzelne Zeilen holt, verwendet wird.

Hinweis:

Bei Queries, die eine große Anzahl an Zeilen zurückliefern, kann die Laufzeit beträchtlich verbessert werden, indem man oci8.default_prefetch erhöht oder oci_set_prefetch() verwendet.

Hinweis:

Dies gibt keine Zeilen von "Implizeten Ergebnismengen" von Oracle Database 12c zurück. Statt dessen ist oci_fetch_array() zu verwenden.

Erste Seite von PHP-Handbuch Inhaltsverzeichnis Haut

Siehe auch

Finde eine PHP-Funktion

Deutsche Übersetzung

Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.

Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.

Vielen Dank im Voraus.

Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-oci-fetch-all.html

Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.

Referenzen

  1. Zeigen Sie - html-Dokument Sprache des Dokuments:fr Manuel PHP : http://php.net

Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.

Inhaltsverzeichnis Haut