Beschreibung
int
ifx_query
( string query, int link_identifier [, int cursor_type [, mixed
blobidarray]])
Gibt
bei
Erfolg
einen
positiven
Integerwert
als
Ergebniskennung
zurück
oder
FALSE
,
falls
ein
Fehler
auftrat
.
Die
Ergebniskennung
,
"
result-id
"
,
wird
von
anderen
Funktionen
benutzt
.
Die
Zahl
der
betroffenen
Zeilen
wird
für
spätere
Abfragen
mit
ifx_affected_rows(
)
gesetzt
.
ifx_query(
)
schickt
eine
Abfrage
an
die
gegenwärtig
aktive
Datenbank
auf
dem
Server
,
die
durch
die
angegebene
Verbindungskennung
bezeichnet
wird
.
Auf
der
Verbindung
conn_id
wird
eine
query
ausgeführt
.
Bei
SELECT-Abfragen
wird
ein
Cursor
deklariert
und
geöffnet
.
Mit
dem
optionalen
Parameter
cursor_type
können
Sie
bestimmen
,
ob
dies
ein
"
scroll"
-
und
/
oder
ein
"hold
"-Cursor
sein
soll
.
Dies
ist
eine
Bitmaske
,
die
entweder
die
Werte
IFX_SCROLL
,
IFX_HOLD
oder
beides
(
mit
OR
verknüpft
)
annehmen
kann
.
Andere
Abfragen
auuser
SELECTs
werden
unverzüglich
ausgeführt
.
IFX_SCROLL
und
IFX_HOLD
sind
symbolische
Konstanten
und
als
solche
sollten
sie
nicht
in
Anführungszeichen
eingeschlossen
werden
.
Wenn
Sie
den
Parameter
weglassen
,
definieren
Sie
einen
ganz
normalen
sequentiellen
Cursor
.
Für
jeden
Abfragetyp
wird
die
Anzahl
der
betroffenen
Zeilen
(
geschätzt
oder
wirklich
)
für
spätere
Abfragen
mit
ifx_affected_rows(
)
gespeichert
.
Falls
Sie
BLOB-Felder
(
BYTE
oder
TEXT
)
in
einem
UPDATE
haben
,
können
Sie
den
Parameter
blobidarray
benutzen
,
der
die
entsprechenden
blob-ids
enthält
und
Sie
sollten
diese
Felder
in
der
Abfrage
durch
"
?
"
ersetzen
.
Falls
der
Inhalt
der
TEXT
-
(
oder
BYTE
)
Spalte
es
erlaubt
,
können
Sie
auch
"ifx_textasvarchar(1)
"
und
"ifx_byteasvarchar(1)
"
benutzen
.
Damit
können
Sie
TEXT
-
oder
BYTE-Felder
behandeln
,
als
wären
sie
normale
(
nur
sehr
lange
)
VARCHAR-Felder
in
SELECT-Abfragen
und
Sie
brauchen
sich
nicht
um
blob-ids
kümmern
.
Mit
ifx_textasvarchar(
0
)
oder
ifx_byteasvarchar(0
)
(der
Standardeinstellung
)
werden
für
BLOB-Spalten
in
SELECT-Abfragen
die
blob-ids
(Integerwerte
)
zurückgegeben
.
Sie
können
die
Inhalte
der
BLOBs
mit
den
BLOB-Funktionen
als
Zeichenketten
oder
Dateien
erhalten
(
siehe
weiter
unten
)
.
Siehe
auch
:
ifx_connect(
)
.
Beispiel
1
.
Gibt
alle
Zeilen
der
"
orders
"-Tabelle
als
HTML-Tabelle
zurück
ifx_textasvarchar(
1)
;
/
/
"text
mode
"
bei
blobs
benutzen
$res_id
=
ifx_query("select
*
from
orders"
,
$conn_id)
;
if
(
!
$res_id
)
{
printf("Kann
orders
nicht
abfragen
:
%s\n
br
%s
br
\n"
,
ifx_error())
;
ifx_errormsg()
;
die
;
}
ifx_htmltbl_result($res_id
,
"border=\"1\"")
;
ifx_free_result($res_id)
;
|
|
Beispiel
2
.
Ein
paar
Werte
in
die
"
catalog
"-Tabelle
einfügen
/
/
blob
id'
s
für
byte
-
und
text-Spalten
erzeugen
$textid
=
ifx_create_blob(0
,
0
,
"Text
Spalte
im
Speicher")
;
$byteid
=
ifx_create_blob(1
,
0
,
"Byte
Spalte
im
Speicher")
;
/
/
blob
id's
in
einem
blobid
array
speichern
$blobidarray[
]
=
$textid
;
$blobidarray[
]
=
$byteid
;
/
/
Abfrage
ausführen
$query
=
"insert
into
catalog
(stock_num
,
manu_code
,
"
.
"cat_descr,cat_picture
)
values(1
,'HRO',?,
?)"
;
$res_id
=
ifx_query($query
,
$conn_id
,
$blobidarray)
;
if
(
!
$res_id
)
{
..
.
Fehler
..
.
}
/
/
Speicher
freigeben
ifx_free_result($res_id)
;
|
|