ingres_unbuffered_query

(No version information available, might only be in Git)

ingres_unbuffered_querySendet eine SQL-Abfrage an Ingres, ohne die Ergebniszeilen zu puffern

Beschreibung

ingres_unbuffered_query ( resource $link , string $query [, array $params [, string $types ]] ) : mixed

ingres_unbuffered_query() sendet die angegebene query an den Ingres-Server.

Die Abfrage wird Teil der aktuell geöffneten Transaktion. Falls es aktuell keine offene Transaktion gibt, wird mit ingres_unbuffered_query() eine geöffnet. Geschlossen wird sie entweder mit ingres_commit(), wobei die gemachten Änderungen in die Datenbank geschrieben werden, oder mit ingres_rollback(), wobei die Änderungen verworfen werden. Wenn das Skript zuende ist, wird jede geöffnete Transaktion zurückgesetzt (indem die ingres_rollback() aufgerufen wird). Sie können vor dem Öffnen einer neuen Transaktion ingres_autocommit() ausführen, danach werden alle Änderungen sofort nach der Ausführung einer SQL-Abfrage committet. Ingres erlaubt zum selben Zeitpunkt nur eine einzige aktive ungepufferte Abfrage. Jede andere aktive ungepufferte Abfrage wird geschlossen, bevor noch eine SQL-Abfrage gesendet werden kann. Außerdem kann der Datensatzzeiger vor dem Auslesen nicht mit ingres_result_seek() positioniert werden.

Hinweis: Verwandte Konfigurationen

Siehe auch die Direktiven ingres.describe und ingres.utf8 der Laufzeit-Konfiguration.

Parameter-Liste

link

Die Verbindungskennung

query

Eine gültige SQL-Abfrage (siehe im SQL reference guide der Ingres-Dokumentation). Bei der Funktion ingres_query() finden Sie bei dem Parameter query eine Liste der SQL-Kommandos, die nicht mit ingres_unbuffered_query() ausgeführt werden können.

Daten in der Abfrage sollten ordnungsgemäß maskiert werden.

params

Ein Array mit den Parameterwerten für die Abfrage

types

Ein String, der eine Folge von Datentypen für die übergebenen Parameterwerte enthält. Eine Liste der Typ-Codes finden Sie bei der Funktion ingres_query(). Bei der Funktion ingres_query() finden Sie bei dem Parameter types eine Liste der Typ-Codes.

Rückgabewerte

ingres_unbuffered_query() gibt eine Ergebniskennung zurück, sofern Zeilen gelesen werden können, anderenfalls wird FALSE zurückgegeben. Das ist beispielsweise bei einem INSERT-, UPDATE- oder DELETE-Kommando der Fall. Um festzustellen, ob es einen Fehler gab, benutzt man die Funktionen ingres_errno(), ingres_error() oder ingres_errsqlstate().

Beispiele

Beispiel #1 Ein einfaches ungepuffertes SELECT-Kommando senden

<?php
$link 
ingres_connect("demodb");

$result ingres_unbuffered_query($link"select * from user_profile");
while (
$row ingres_fetch_row($result)) {
    echo 
$row[1];
    echo 
$row[2];
}
?>

Beispiel #2 Abfrageparameter an ingres_unbuffered_query() übergeben

<?php
$link 
ingres_connect("demodb");

$params[] = "Emma";
$query "select * from user_profile where up_first = ?";
$result ingres_unbuffered_query($link$query$params);
while (
$row ingres_fetch_row($result)) {
    echo 
$row[1];
    echo 
$row[2];
}
?>

Beispiel #3 Ein BLOB mit Parameter-Typen einfügen

<?php
$link 
ingres_connect("demodb");

// Eine Bilddatei öffnen
$fh fopen("photo.jpg","r");
$blob_data stream_get_contents($fh);
fclose($fh);

// Parameter vorbereiten
$params[] = $blob_data;
$params[] = 1201;

// Parameter-Typen definieren
$param_types "Bi";

$query "update user_profile set up_image = ? where up_id = ?";
$result ingres_unbuffered_query($link$query $params$param_types);

if (
ingres_errno())
{
    echo 
ingres_errno() . "-" ingres_error() . "\n";
}
?>

Siehe auch