ingres_query
Sendet eine SQL-Abfrage an den Ingres-Server
Beschreibung
mixed ingres_query
( resource $link
, string $query
[, array $params
[, string $types
]] )
Die Abfrage wird zu einem Teil der aktuell offenen Transaktion.
Falls keine Transaktion geöffnet ist, öffnet ingres_query
eine neue Transaktion. Um diese Transaktion zu schließen, kann man
ingres_commit aufrufen, um die gemachten Änderungen
in die Datenbank zu schreiben. Mit ingres_rollback
kann man diese Änderungen aber auch wieder zrücksetzen. Wenn das Skript
beendet wird, wird jede offene Transaktion zurückgesetzt (indem die Funktion
ingres_rollback aufgerufen wird). Sie können auch die
Funktion ingres_autocommit benutzen, bevor Sie eine neue
Transaktion öffnen, damit wird jede einzelne SQL-Abfrage sofort comittet.
Hinweis:
Verwandte Konfigurationen
Schauen Sie sich ingres.describe,
ingres.scrollable und
ingres.utf8 an sowie die Direktiven zur
Laufzeit Konfiguration.
Parameter-Liste
-
link
-
Die Verbindungskennung
query
-
Eine gültige SQL-Abfrage (mehr im Ingres SQL reference
guide) der Ingres-Dokumentation.
Folgende Arten von SQL-Abfragen können mit dieser Funktion nicht gesendet werden:
-
close (siehe ingres_close)
-
commit (siehe ingres_commit)
-
connect (siehe ingres_connect)
-
disconnect (siehe ingres_close)
-
get dbevent
-
prepare to commit
-
rollback (siehe ingres_rollback)
- savepoint
-
set autocommit (siehe ingres_autocommit)
-
alle Abfragen, die sich auf Cursors beziehen, werden nicht
unterstützt
-
params
-
Ein Array mit Parameterwerten, die in der Abfrage verwendet werden
types
-
Ein String, der eine Folge von Datentypen für die übergebenen Parameterwerte
enthält. Wenn die Option ingres.describe
aktiviert ist, kann dieser Parameter ignoriert werden, da die erwarteten
Datentypen automatisch vom Server geholt werden.
Rückgabewerte
ingres_query gibt eine Ergebniskennung für die Abfrage
zurück, sofern Zeilen geholt 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 SELECT-Kommando senden
<?php
$link = ingres_connect("demodb");
$result = ingres_query($link, "select * from user_profile");
while ($row = ingres_fetch_row($result)) {
echo $row[1];
echo $row[2];
}
?>
Beispiel #2 Abfrage-Parameter an ingres_query übergeben
<?php
$link = ingres_connect("demodb");
$params[] = "Emma";
$query = "select * from user_profile where up_first = ?";
$result = ingres_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_query($link, $query , $params, $param_types);
if (ingres_errno())
{
echo ingres_errno() . "-" . ingres_error() . "\n";
}
ingres_commit($link);
ingres_close($link);
?>
Siehe auch
- ingres_unbuffered_query
- ingres_fetch_array
- ingres_fetch_object
- ingres_fetch_row
- ingres_commit
- ingres_rollback
- ingres_autocommit
- ingres_set_environment
- ingres_errno
- ingres_error