ingres_unbuffered_query
Sendet eine SQL-Abfrage an Ingres, ohne die Ergebniszeilen zu puffern
Beschreibung
mixed ingres_unbuffered_query
( resource $link
, string $query
[, array $params
[, string $types
]] )
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
- ingres_query
- ingres_fetch_array
- ingres_fetch_assoc
- ingres_fetch_object
- ingres_fetch_row
- ingres_commit
- ingres_rollback
- ingres_autocommit
- ingres_set_environment
- ingres_errno
- ingres_error