ingres_query

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_querySendet eine SQL-Abfrage an den Ingres-Server

Beschreibung

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

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.

Parameter-Liste

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

Rückgabewerte

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.

Beispiele

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);
?>

Siehe auch