Start · Sprachen · PHP · Referenz · ocistatementtype

ocistatementtype

Funktion

Alias von <code>oci_statement_type()</code> — gibt den Typ eines vorbereiteten OCI-Statements (z. B. SELECT, INSERT) als Zeichenkette zurück.

seit PHP 5.0.0 Kategorie: db

Signatur

ocistatementtype(resource $statement): string|false

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

Typ
string|false
Beschreibung
Gibt den Typ des Statements als Zeichenkette zurück (z. B. 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);
Statement-Typ: SELECT

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);
Kein SELECT-Statement, Typ: INSERT

// 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.