It looks like passing 0 (zero) as a $maxrows parameter is treated identically as -1 value - all the rows are returned.
OCIfetchstatement($stmt, $res, 1, 0, OCI_FETCHSTATEMENT_BY_ROW)
Tested under: PHP 4.4.3, WinXP pro
oci_fetch_all
(PHP 5, PECL oci8:1.1-1.2.4)
oci_fetch_all — Holt alle Reihen der Ergebnisdaten in ein Array
Beschreibung
Holt alle Reihen eines Ergebnisses in einem benutzerdefinierten Array.
Für Details zur vom OCI8 Treiber durchgeführten Umsetzung von Datentypen siehe die vom Treiber unterstützen Datentypen.
Parameter-Liste
- statement
-
Ein Zeiger auf eine gültige OCI-Anweisung.
- output
-
Hinweis: Diese Funktion setzt NULL Felder auf den PHP Wert NULL.
- skip
-
Die Anzahl der zu ignorierenden Anfangszeilen beim Holen des Ergebnisses (Standardwert ist 0, um mit der ersten Zeile zu beginnen).
- maxrows
-
Anzahl der zu lesenden Zeilen ab der skip ten Zeile (Standard ist -1, um alle Zeilen zu holen).
- flags
-
Der Parameter flags kann eine beliebige Kombination aus dem folgenden Konstanten sein:
- OCI_FETCHSTATEMENT_BY_ROW
- OCI_FETCHSTATEMENT_BY_COLUMN (Standardwert)
- OCI_NUM
- OCI_ASSOC
Rückgabewerte
Liefert die Anzahl der abgerufenen Zeilen oder FALSE bei einem Fehler.
Beispiele
Beispiel #1 oci_fetch_all() Beispiel
<?php
/* oci_fetch_all example mbritton at verinet dot com (990624) */
$conn = oci_connect("scott", "tiger");
$stmt = oci_parse($conn, "select * from emp");
oci_execute($stmt);
$nrows = oci_fetch_all($stmt, $results);
if ($nrows > 0) {
echo "<table border=\"1\">\n";
echo "<tr>\n";
foreach ($results as $key => $val) {
echo "<th>$key</th>\n";
}
echo "</tr>\n";
for ($i = 0; $i < $nrows; $i++) {
echo "<tr>\n";
foreach ($results as $data) {
echo "<td>$data[$i]</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
} else {
echo "Keine Daten gefunden<br />\n";
}
echo "$nrows Einträge selektiert<br />\n";
oci_free_statement($stmt);
oci_close($conn);
?>
Anmerkungen
Hinweis: In der PHP-Versionen vor 5.0.0 muss man ocifetchstatement() benutzen. Den Namen kann man immer noch nutzen. Er wurde als Alias für oci_fetch_all() für die Abwärtskompatibilität erhalten. Dieses ist allerdings veraltet und wird nicht empfohlen.
oci_fetch_all
11-Jul-2007 05:55
07-Feb-2007 07:43
If you want to use more than one flag, you need to use the + to connect them:
<?php
oci_fetch_all($stmt, $row, "0", "-1", OCI_ASSOC+OCI_FETCHSTATEMENT_BY_ROW);
?>
12-Feb-2006 02:46
The number of rows returned is the number actually fetched, not the number potentially available. If one limits the number of rows to fetch, the number of rows returned will be bound by that limit. For example...
$nrows = oci_fetch_all($statement, $results, 0, 1);
would result in a returned value of '0' if there are no rows found for the statement, or '1' if any rows were found, regardless of the number actually present in the database.
