Ist es möglich zu überprüfen, ob eine (MySQL) Datenbank vorhanden ist, nachdem eine Verbindung hergestellt wurde?
Ich kann überprüfen, ob eine Tabelle in einer Datenbank vorhanden ist, muss jedoch überprüfen, ob die Datenbank vorhanden ist. Wenn nicht, muss ich einen anderen Code aufrufen, um ihn zu erstellen und zu füllen.
Ich weiß, das klingt alles etwas unelegant - dies ist eine schnelle und schmutzige App.
Eine einfache Möglichkeit, um zu überprüfen, ob eine Datenbank vorhanden ist, ist:
Wenn keine Datenbank mit dem Namen 'Datenbankname' vorhanden ist, erhalten Sie einen leeren Satz. Wenn es existiert, erhalten Sie eine Zeile.
quelle
Wenn Sie nach einem PHP-Skript suchen, siehe unten.
quelle
Aus der Schale wie Bash
quelle
Hier ist eine Bash-Funktion zum Überprüfen, ob eine Datenbank vorhanden ist:
Eine andere Alternative besteht darin, einfach zu versuchen, die Datenbank zu verwenden. Beachten Sie, dass dies auch die Berechtigung überprüft:
quelle
>/dev/null
garantiert aber , dass das Ergebnis immer null ist. Versuchen Sie etwas wieif [ -z "$(mysql ${db} 2>&1 </dev/null)" ]; then ...
.>/dev/null
ändert nicht, dass der Exit-Code ausgeführt wirdmysql
. Die Ausgabe wird nur ausgeblendet, wenn ein Fehler auftritt. Dasif ...; then
Teil überprüft den Exit-Code.Eine gute Möglichkeit, um zu überprüfen, ob eine Datenbank in PHP vorhanden ist, ist:
Das ist die Methode, die ich immer benutze.
quelle
Ein sehr einfacher BASH-One-Liner:
quelle
quelle
quelle
Für diejenigen, die PHP mit MySQL verwenden, ist dies meine Lösung. Ich weiß, dass die Antwort bereits beantwortet wurde, aber ich dachte, es wäre hilfreich, die Antwort auch als von mysqli vorbereitete Erklärung zu haben.
quelle
Bash verwenden:
quelle
Langwierig und verschlungen (aber ertrage es mit mir!), Hier ist ein Klassensystem, das ich erstellt habe, um zu überprüfen, ob eine Datenbank vorhanden ist, und um auch die erforderlichen Tabellen zu erstellen:
In diesem Fall können Sie den Datenbanknamen
en
durch einen beliebigen Datenbanknamen ersetzen und das Erstellungsskript in etwas ändern, das (hoffentlich!) Nicht beschädigt wird. Wenn jemand dies verbessern kann, lass es mich wissen!Hinweis
Wenn Sie Visual Studio nicht mit PHP-Tools verwenden, sorgen Sie sich nicht um die Regionen, sondern um das Falten von Code: P.
quelle
Mit diesem Skript können Sie feststellen, dass eine Ja- oder Nein-Datenbank vorhanden ist. Falls diese nicht vorhanden ist, wird keine Ausnahme ausgelöst.
quelle
Schienencode:
=> entos_development existiert, entos_development1 existiert nicht
quelle
Wenn Sie MSSQL anstelle von MySQL verwenden, lesen Sie diese Antwort aus einem ähnlichen Thread .
quelle
Ich benutze einfach die folgende Abfrage:
Überprüfen Sie dann, ob das Ergebnis FALSE ist. Andernfalls liegt möglicherweise ein Fehler bei der Zugriffsverweigerung vor, aber das kann ich nicht wissen. Im Falle von Privilegien kann man also verwenden:
wie bereits erwähnt.
quelle
Hier ist meine Vorgehensweise in einem Bash-Skript:
quelle
Folgende Lösung hat bei mir funktioniert:
quelle
Eine andere PHP-Lösung, aber mit PDO:
quelle
Golang-Lösung
quelle
Seien Sie vorsichtig, wenn Sie mit einer ähnlichen Aussage auf Existenz prüfen!
Wenn in einer Reihe unglücklicher Ereignisse Ihre Variable leer ist und Sie am Ende Folgendes ausführen:
Es gibt ALLE Datenbanken zurück und teilt dem aufrufenden Skript mit, dass es existiert, seit einige Zeilen zurückgegeben wurden.
Es ist viel sicherer und besser, ein Gleichheitszeichen "=" zu verwenden, um die Existenz zu testen.
Der richtige und sichere Weg, um seine Existenz zu testen, sollte sein:
Beachten Sie, dass Sie die Spaltennamendatenbank mit Backticks umschließen müssen. In diesem Fall kann keine entspannte Syntax verwendet werden.
Auf diese Weise gibt SHOW DATABASES nicht ALLE Datenbanken zurück, wenn der Code, der die Variable 'xxxxx' erstellt, leer ist, sondern eine leere Menge.
quelle