ConFoo: Call for paper is now Open

ingres_query

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

ingres_querySendet eine SQL-Abfrage an den Ingres-Server

Beschreibung

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

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:

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

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top