Beschreibung
resource
mysql_query
( string Anfrage [, resource Verbindungs-Kennung [, int
Ergebnis-Modus]])
mysql_query(
)
sendet
eine
Anfrage
an
die
zur
Zeit
aktiven
Datenbank
,
die
mit
der
angegebenen
Verbindungs-Kennung
mysql_query(
)
sendet
eine
Anfrage
an
die
zur
Zeit
aktiven
Datenbank
,
die
mit
der
angegebenen
Verbindungs-Kennung
assoziiert
wird
.
Wird
die
Verbindungs-Kennung
nicht
angegeben
,
wird
die
zuletzt
geöffnete
Verbindung
angenommen
.
Wenn
keine
offene
Verbindung
besteht
,
wird
versucht
eine
Verbindung
aufzubauen
,
wie
beim
Aufruf
von
mysql_connect(
)
ohne
Argumente
und
diese
wird
dann
benutzt
.
Der
optionale
Parameter
Ergebnis-Modus
kann
MYSQL_USE_RESULT
oder
MYSQL_STORE_RESULT
sein
.
Der
Vorgabewert
ist
MYSQL_STORE_RESULT
,
damit
wird
das
Ergebnis
zwischengespeichert
.
Siehe
auch
mysql_unbuffered_query(
)
für
das
das
entgegengesetzte
Verhalten
.
Anmerkung
:
Die
Anfrage
sollte
nicht
mit
einem
Semikolon
enden
.
Nur
für
SELECT
,
EXPLAIN
,
SHOW
oder
DESCRIBE
Anweisungen
liefert
mysql_query(
)
eine
Ressourcen-Kennung
oder
FALSE
,
falls
die
Anfrage
nicht
korrekt
ausgeführt
wurde
.
Für
alle
anderen
SQL
Anweisungen
ist
der
Rückgabewert
von
mysql_query(
)
im
Erfolgsfall
TRUE
,
im
Fehlerfall
FALSE
.
Ein
Rückgabewert
ungleich
FALSE
bedeutet
,
dass
die
Anfrage
gültig
war
und
vom
Server
ausgeführt
werden
konnte
.
Das
alleine
sagt
jedoch
überhaupt
nichts
über
die
Anzahl
veränderter
oder
gelieferter
Datensätze
aus
.
Es
ist
durchaus
möglich
,
dass
eine
Anfrage
erfolgreich
war
,
ohne
einen
einzigen
Datensatz
zur
verändern
oder
zu
liefern
.
Die
folgende
Anfrage
ist
syntaktisch
falsch
,
deshalb
liefert
mysql_query(
)
FALSE
zurück
:
Beispiel
1
.
mysql_query(
)
php
$result
=
mysql_query
(
"SELECT
*
WHERE
1=1"
)
or
die
("Ungültige
Abfrage
:
"
.
mysql_error())
;
?
|
|
Die
folgende
Anfrage
ist
semantisch
falsch
,
wenn
my_col
kein
Feld
in
der
Tabelle
my_tbl
ist
.
Deshalb
schlägt
mysql_query(
)
fehl
und
liefert
FALSE
:
Beispiel
2
.
mysql_query(
)
?php
$result
=
mysql_query
(
"SELECT
my_col
FROM
my_tbl"
)
or
die
("Ungültige
Abfrage
:
"
.
mysql_error())
;
?
|
|
mysql_query(
)
schlägt
ebenso
fehl
und
liefert
FALSE
,
wenn
Sie
keine
Berechtigung
zum
Zugriff
auf
die
verwiesene(n
)
Tabelle(n
)
haben
.
Angenommen
eine
Anfrage
ist
erfolgreich
,
dann
können
Sie
für
eine
SELECT
Anweisung
mit
mysql_num_rows(
)
die
Anzahl
der
gelieferten
Datensätze
herausfinden
.
Falls
Sie
DELETE
,
INSERT
,
REPLACE
,
oder
UPDATE
benutzt
haben
,
können
Sie
die
Anzahl
der
betroffenen
Datensätze
mit
mysql_affected_rows(
)
feststellen
.
Nur
bei
SELECT
,
EXPLAIN
,
SHOW
oder
DESCRIBE
Anweisungen
liefert
mysql_query(
)
eine
neue
Ergebnis-Kennung
,
die
Sie
an
die
Funktion
mysql_fetch_array(
)
und
andere
Funktionen
,
die
mit
Ergebnistabellen
umgehen
können
,
übergeben
können
.
Sind
sie
mit
der
Bearbeitung
Ihrer
Ergebnisse
fertig
,
können
Sie
die
belegten
Resourcen
durch
den
Aufruf
von
mysql_free_result(
)
freigeben
.
Ist
die
Ausführung
des
Skripts
abgeschlossen
,
wird
der
belegte
Speicher
automatisch
freigegeben
.
Siehe
auch
:
mysql_num_rows(
)
mysql_affected_rows(
)
,
mysql_unbuffered_query(
)
,
mysql_free_result(
)
,
mysql_fetch_array(
)
,
mysql_fetch_row(
)
,
mysql_fetch_assoc(
)
,
mysql_result(
)
,
mysql_select_db(
)
und
mysql_connect(
)
.