mysql_query

(PHP 3, PHP 4 >= 4.0.0)

mysql_query -- Sendet eine SQL Anfrage zum Datenbankserver

Beschreibung

int mysql_query (string Anfrage [, int Verbindungs-Kennung])

mysql_query() sendet eine Anfrage zu der zur Zeit aktiven Datenbank-Verbindung oder der Verbindung mit der übergegebenen Kennung. Wenn keine offene Verbindung besteht, wird versucht eine Verbindung aufzubauen, als ob mysql_connect() ohne Argumente aufgerufen wird.

Die Anfrage sollte nicht mit einem Semikolon enden.

mysql_query() liefert TRUE (non-zero) oder FALSE, um anzuzeigen, ob die Anfrage erfolgreich war oder nicht. Wird im Erfolgsfall TRUE zurückgeliefert, dann sagt dies nichts über die Zahl veränderter oder gelieferter Datensätze aus. Es ist durchaus möglich, dass eine Anfrage erfolgreich ist, 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 ("Invalid query");
?>
      

Die folgende Anfrage ist semantisch falsch, wenn my_col ist kein Feld in der Tabelle my_tbl. 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 ("Invalid query");
?>
      

mysql_query() schlägt ebenso fehl und liefert FALSE, wenn Sie keinen Zugriff auf die Tabelle(n) haben.

Angenommen eine Anfrage ist erfolgreich, dann können Sie mit mysql_affected_rows() herausfinden wieviele Datensätze beeinflusst wurden (für DELETE, INSERT, REPLACE, oder UPDATE Anweisungen). Bei SELECT Anweisungen, liefert mysql_query() eine Ergebnis-Kennung, die man mit mysql_result() weiter verarbeiten kann. Wenn das Ergebnis nicht mehr gebraucht wird, können die belegten Resourcen mit mysql_free_result() freigegeben werden.

Siehe auch: mysql_affected_rows(), mysql_db_query(), mysql_unbuffered_query(), mysql_free_result(), mysql_result(), mysql_select_db() und mysql_connect().