ingres_query
(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)
ingres_query — Sendet eine SQL-Abfrage an den Ingres-Server
Beschreibung
ingres_query() sendet die angegebene query an den Ingres-Server.
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.
Typ-Code Ingres-Datentyp b BYTE B LONG BYTE/BLOB c CHAR d DATE/ANSIDATE/TIMESTAMP/TIME f FLOAT i INTEGER L LONG TEXT m MONEY M LONG NVARCHAR n NCHAR N NVARCHAR t TEXT v VARCHAR V LONG VARCHAR
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() - Sendet eine SQL-Abfrage an Ingres, ohne die Ergebniszeilen zu puffern
- ingres_fetch_array() - Liest eine Zeile der Ergebnismenge in ein Array ein
- ingres_fetch_object() - Gibt eine Zeile der Ergebnismenge als Objekt zurück
- ingres_fetch_row() - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array
- ingres_commit() - Beendet eine Transaktion
- ingres_rollback() - Setzt eine Transaktion zurück
- ingres_autocommit() - Schaltet den autocommit-Modus an oder aus
- ingres_set_environment() - Setzt Eigenschaften der Umgebung zur Ausgabesteuerung
- ingres_errno() - Gibt den letzten Ingres-Fehlercode zurück
- ingres_error() - Gibt eine textuelle Beschreibung des letzten Fehlercodes zurück
ingres_query
