mysql_ping
mysql_real_escape_string
MySQL Funktionen
PHP Manual

# mysql_query

(PHP 4, PHP 5, PECL mysql:1.0)

mysql_query — Sendet eine Anfrage an MySQL

### Beschreibung

resource mysql_query ( string `$Anfrage` [, resource `$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. Das Ergebnis der Anfrage wird gepuffert.

> Hinweis: 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() Beispiel

`<?php
$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
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');
if (!$result) {
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().

mysql_ping
mysql_real_escape_string
MySQL Funktionen
PHP Manual