PHP: mysql_query und die Verbindung der Erklärung
Vor kurzem habe ich angefangen, PHP zu erlernen, und fand heraus, dass der gemeinsame Weg, um eine Verbindung zu einer Datenbank ist:
//create connection to database
$connection = mysql_connect("localhost", "root", "password")
//Select database
$db_select = mysql_select_db("myDB", $connection);
//and finally the query..
$result = mysql_query("SELECT * FROM table", $connection);
Nun meine Frage ist, warum wir haben, zu verwenden, $connection im Dritten Schritt ?! wie wir mit "myDB" für die Datenbank, die ich erwarten, zu schreiben, der Dritte Schritt dieser Art und Weise :
//and finally the query..
$result = mysql_query("SELECT * FROM table", $db_select);
aber es scheint, das ist nicht, wie es ist getan in php. kann jemand erklären, warum ?
- Lesen Sie die
mysql_query()
Dokumentation Der zweite Parameter ist optional und gibt die Verbindung. Wenn Sie mehrere aktive verbindungen haben, müssen Sie angeben, welcher der Abfrage verwendet. Die Verbindung der Parameter ist ebenfalls optional zumysql_select_db()
. Andere APIs wie MySQLi, beispielsweise ermöglichen Sie die Datenbank angeben, auf die Zeit, die Sie die Verbindung einrichten, aber die alte MySQL-Erweiterung nicht. - Ich glaube, Sie finden alles, was Sie brauchen und vieles mehr auf PHP.net auch mysqli und PDO, die beide bessere Möglichkeiten als die älteren mysql-Funktionen.
- Es ist eine gute Idee, um sich mit
mysql_
Funktionen, wenn Sie ' re Umgang mit legacy-code, aber für neuen code sollten Sie wirklich mitmysqli_
oderPDO
. Siehe dieses tutorial für erste Schritte mit PDO. - Jungs, ich schaute aufwärts für "legacy-code" definition und ich fand heraus, "Legacy code ist Quellcode, der in Beziehung zu einem nicht-mehr unterstützt oder hergestellt werden, Betriebssystem oder andere computer-Technologie", also das mysql_query-Befehl wird nicht mehr unterstützt ?!
mysql_query
und anderemysql_
Kommandos sind für jetzt, aber Sie sind veraltet und neue Benutzer sind (naja, sollte) aktiv davon abgeraten, Sie zu verwenden.- gut, es ist zwar noch unterstützt, (und viel mehr stabiler als die Konkurrenz), aber einige faule Entwickler begann zu sprechen, von der Einleitung des Prozesses der weiteren Unterstützung zu stoppen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Verbindung stellt eine Datenbank-server-Sitzung, die behauptet, den Zustand der Datenbank für Sie. Die aktuell ausgewählte Datenbank ist nur ein Teil einer Sitzung den Staat, also durch die übergabe der Verbindung Sie sind implizit auch die übergabe der aktuell ausgewählte Datenbank (zusammen mit anderen notwendigen Informationen). In anderen Worten, die Verbindung ist allgemeiner als die ausgewählten Datenbank.
(Wie andere bereits festgestellt haben, ist es nicht notwendig, explizit übergeben Sie die Verbindung, wenn Ihr Programm nur Zugriff auf eine einzige Datenbank auf einem einzelnen server. MySQL verwendet die zuletzt angeschlossenen Sitzung.)
Nicht erforderlich. Es ist jedoch sehr nützlich.
Wenn Sie eine Verbindung zu mehreren Datenbanken auf der gleichen Seite, die Sie verwenden möchten, können Sie Sie beide.
Allerdings, wenn Sie nicht angeben, welche Verbindung, es müssen nur die letzten ein, dass Sie erfolgreich verbunden sind.
Wenn Sie nur eine Verbindung, aber dann brauchen Sie nicht, um es in.
Funktion Beschreibung
mysql_query()-> senden einer Abfrage zur Datenbank (für die aktuell aktive Datenbank auf dem server die mit der angegebenen Verbindungs-Kennung).
Parameter
query ->
Die SQL-Abfrage.
Verbindungs-Kennung ->
Wenn die Verbindungs-Kennung nicht angegeben, wird der Letzte link geöffnet mysql_connect () ausgegangen wird. Wenn keine solche Verbindung gefunden wird, wird es versuchen, eine zu erzeugen, als wenn mysql_connect () aufgerufen wurde, ohne Argumente. Wenn keine Verbindung gefunden wird oder niedergelassen ist, eine Bestätigung der Fehler der Stufe E_WARNING erzeugt.
Du nimmst
mysql_select_db()
falsch.Es ist nicht etwas, das wesentliche.
Sie können die Verwendung von mysql ohne diese Funktion alles in Ordnung.
dies ist eigentlich nicht mehr als alias für die
USE dbname
Abfrage.Darüber hinaus arbeiten Sie mit 2 oder mehr Datenbanken gleichzeitig innerhalb einer Verbindung.
So, es macht keinen Sinn, die DB-Ressource anstelle des Verbindungs-Ressource.