(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)
ingres_query — Sendet eine SQL-Abfrage an den Ingres-Server
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 entweder ingres_commit() aufrufen werden, um die gemachten Änderungen in die Datenbank zu schreiben, oder ingres_rollback(), um diese Änderungen zu verwerfen. Wenn das Skript beendet wird, wird jede offene Transaktion zurückgesetzt (indem die Funktion ingres_rollback() aufgerufen wird). Vor dem Öffnen einer neuen Transaktion kann auch ingres_autocommit() aufgerufen werden, so dass alle Änderungen sofort nach der Ausführung einer SQL-Abfrage committet werden.
Hinweis: Verwandte Konfigurationen
Schauen Sie sich ingres.describe, ingres.scrollable und ingres.utf8 an sowie die Direktiven zur Laufzeit Konfiguration.
link
Die Verbindungskennung
query
Eine gültige SQL-Abfrage (mehr im Ingres SQL reference guide der Ingres-Dokumentation).
Daten in der Abfragen sollten ordnungsgemäß maskiert werden.
Folgende Arten von SQL-Abfragen können mit dieser Funktion nicht gesendet werden:
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 |
---|---|
a | BOOLEAN |
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 |
ingres_query() gibt im Erfolgsfall eine Ergebniskennung
für die Abfrage zurück. Anderenfalls wird FALSE
zurückgegeben. Um
festzustellen, ob es einen Fehler gab, sind
ingres_errno(), ingres_error() oder
ingres_errsqlstate() zu verwenden.
Beispiel #1 Eine einfache SELECT-Abfrage 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);
?>