PHP
Referenzliste
mysql_query
MySQL-Funktionen
Befehl:
resource mysql_query ( string $query [, resource $Verbindungs-Kennung ] )
Parameter-Liste:
Beschreibung | |
---|---|
Eine SQL Anweisung Die Anweisung sollte nicht mit einem Semikolon abgeschlossen werden. Werte innerhalb der Abfrage sollten korrekt maskiert werden. | |
Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt. |
Rückgabewerte:
Für SELECT, SHOW, DESCRIBE, EXPLAIN und andere Anweisungen, die eine Ergebnismenge zurückgeben, gibt mysql_query() eine Kennung resource bei Erfolg zurück oder
Für alle anderen von SQL Anweisungen wie INSERT, UPDATE, DELETE, DROP, etc, gibt mysql_query()
Die zurückgegebene Ergebnis Ressource sollte an mysql_fetch_array() oder andere Funktionen, die mit Ergebnis Tabellen umgehen, übergeben werden, um auf die erhaltenen Daten zuzuzugreifen.
Nutzen sie mysql_num_rows() um zu erfahren, wieviele Zeilen für eine SELECT Anweisungen zurückgegeben wurden oder mysql_affected_rows() um zu erfahren, wieviele Zeilen von einer DELETE, INSERT, REPLACE oder UPDATE Anweisung betroffen waren.
mysql_query() wird ebenfalls fehlschlagen und
FALSE
bei Fehlern.Für alle anderen von SQL Anweisungen wie INSERT, UPDATE, DELETE, DROP, etc, gibt mysql_query()
TRUE
bei Erfolg zurück oder FALSE
bei Fehlern.Die zurückgegebene Ergebnis Ressource sollte an mysql_fetch_array() oder andere Funktionen, die mit Ergebnis Tabellen umgehen, übergeben werden, um auf die erhaltenen Daten zuzuzugreifen.
Nutzen sie mysql_num_rows() um zu erfahren, wieviele Zeilen für eine SELECT Anweisungen zurückgegeben wurden oder mysql_affected_rows() um zu erfahren, wieviele Zeilen von einer DELETE, INSERT, REPLACE oder UPDATE Anweisung betroffen waren.
mysql_query() wird ebenfalls fehlschlagen und
FALSE
zurückgeben, wenn der Nutzer nicht die Rechte hat, auf die Tabellen, die in der Anweisung referenziert wurden, zuzugreifen. Beschreibung:
mysql_query() sendet eine einzelne Abfrage (mehrere Abfragen werden nicht unterstützt) zu dem momentan aktiven Schema auf dem Server, der mit der übergebenen Verbings-Kennung Verbindungs-Kennung assoziiert ist.
Aktiv in Version:
(PHP 4, PHP 5, PHP 7)
Warnung:
Warnung:
Diese Erweiterung ist ab PHP 5.5.0 veraltet und wird in der Zukunft entfernt werden. Stattdessen wird der MySQLi oder PDO_MYSQL Verlängerung verwendet werden. Siehe auch MySQL: Auswahl einer API Führung und bezogenen FAQ für weitere Informationen. Alternativen zu dieser Funktion sind:
Siehe auch:
Öffnet eine Verbindung zu einem MySQL-Server
Liefert den Fehlertext der zuvor ausgeführten MySQL Operation
Maskiert spezielle Zeichen innerhalb eines Strings für die Verwendung in einer SQL-Anweisung
Liefert Ergebnis
Liefert einen Datensatz als assoziatives Array
Sendet eine SQL Anfrage an MySQL, ohne Ergebniszeilen abzuholen und zu puffern.
mysql_query() - Beispiel: Ungültige Anfrage
Eingabe:
<?php $result = mysql_query('SELECT * WHERE 1=1'); if (!$result) { die('Ungültige Anfrage: ' . mysql_error()); } ?>
mysql_query() - Beispiel 2: Gültige Anfrage
Eingabe:
<?php // Dies kömmze z.B. durch einen Nutzer angegeben werden $firstname = 'fred'; $lastname = 'fox'; // Formuliere Abfrage // Dies ist die beste Art, eine SQL Abfrage duerchzuführen // Für weitere Beispiele, siehe: mysql_real_escape_string() $query = sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'", mysql_real_escape_string($firstname), mysql_real_escape_string($lastname)); // Führe Abfrage aus $result = mysql_query($query); // Prüfe Ergebnis // Dies zeigt die tatsächliche Abfrage, die an MySQL gesandt wurde und den // Fehler. Nützlich bei der Fehlersuche if (!$result) { $message = 'Ungültige Abfrage: ' . mysql_error() . "\n"; $message .= 'Gesamte Abfrage: ' . $query; die($message); } // Nutze Ergebnis // Der Versuch $result auszugeben, erlaubt keine Zugriff auf die Informationen // der Ressource. // Eine der MySQ result Funktionen muss genutzt werden // Siehe auch: mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc. while ($row = mysql_fetch_assoc($result)) { echo $row['firstname']; echo $row['lastname']; echo $row['address']; echo $row['age']; } // Gebe Ressourcen, die mit der Ergebnismenge assoziiert sind, frei // Dies geshieht am Ende eines Skriptes automatisch mysql_free_result($result); ?>
MySQL-Funktionen