mysql_query

mysql_query -- Sendet eine Anfrage an MySQL

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( ) .