Signatur
Beschreibung
ocistatementtype() ist ein veralteter Alias der Funktion oci_statement_type() und liefert den Typ eines mit oci_parse() vorbereiteten Oracle-Datenbankstatements als Zeichenkette zurück. Mögliche Rückgabewerte sind SELECT, UPDATE, DELETE, INSERT, CREATE, DROP, ALTER, BEGIN, DECLARE, CALL sowie UNKNOWN.
Die Funktion ist nützlich, wenn zur Laufzeit bestimmt werden soll, welche Art von SQL-Befehl ausgeführt werden soll, beispielsweise um anschließend unterschiedliche Ergebnisbehandlungen durchzuführen (z. B. Ergebniszeilen nur bei SELECT-Statements abrufen).
Hinweis: Diese Funktion ist ein Alias und sollte in neuem Code nicht mehr verwendet werden. Nutze stattdessen die bevorzugte Funktion oci_statement_type(), da Aliase in zukünftigen PHP-Versionen entfernt werden können.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $statement Pflicht | resource | Eine gültige OCI-Statement-Ressource, die zuvor mit oci_parse() erstellt wurde. |
Rückgabewert
SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, BEGIN, DECLARE, CALL oder UNKNOWN). Im Fehlerfall wird false zurückgegeben.Beispiele
Statement-Typ eines SELECT-Befehls ermitteln
<?php
$conn = oci_connect('benutzer', 'passwort', 'localhost/XE');
if (!$conn) {
die('Verbindungsfehler');
}
$sql = 'SELECT * FROM mitarbeiter WHERE abteilung = :abt';
$stmt = oci_parse($conn, $sql);
$typ = ocistatementtype($stmt);
echo "Statement-Typ: " . $typ . PHP_EOL;
oci_free_statement($stmt);
oci_close($conn);
Bedingte Ergebnisverarbeitung je nach Statement-Typ
<?php
$conn = oci_connect('benutzer', 'passwort', 'localhost/XE');
if (!$conn) {
die('Verbindungsfehler');
}
$sql = 'INSERT INTO protokoll (nachricht) VALUES (:msg)';
$stmt = oci_parse($conn, $sql);
$typ = ocistatementtype($stmt);
if ($typ === 'SELECT') {
echo "Statement liefert Ergebniszeilen." . PHP_EOL;
} else {
echo "Kein SELECT-Statement, Typ: " . $typ . PHP_EOL;
}
oci_free_statement($stmt);
oci_close($conn);
// Wichtig · Fallstricke
Deprecation-Hinweis: ocistatementtype() ist ein veralteter Alias von oci_statement_type(). In neuem Code sollte ausschließlich oci_statement_type() verwendet werden, da Aliase in zukünftigen PHP-Versionen ohne Vorwarnung entfernt werden könnten.
Die Funktion erfordert die OCI8-Erweiterung (ext/oci8), die separat installiert und in der php.ini aktiviert sein muss.