Czy można sprawdzić, czy baza danych (MySQL) istnieje po nawiązaniu połączenia?
Wiem, jak sprawdzić, czy tabela istnieje w bazie danych, ale muszę sprawdzić, czy baza danych istnieje. Jeśli nie, muszę wywołać inny fragment kodu, aby go utworzyć i wypełnić.
Wiem, że to wszystko brzmi trochę nieelegancko - jest to szybka i brudna aplikacja.
Prostym sposobem sprawdzenia, czy baza danych istnieje, jest:
Jeśli baza danych o nazwie „dbname” nie istnieje, otrzymujesz pusty zestaw. Jeśli istnieje, otrzymasz jeden wiersz.
źródło
Jeśli szukasz skryptu php, zobacz poniżej.
źródło
Z muszli jak bash
źródło
Oto funkcja bash do sprawdzania, czy baza danych istnieje:
Inną alternatywą jest próba użycia bazy danych. Pamiętaj, że to sprawdza również uprawnienie:
źródło
>/dev/null
gwarantuje, że wynik jest zawsze zerowy. Spróbuj czegoś takiegoif [ -z "$(mysql ${db} 2>&1 </dev/null)" ]; then ...
.>/dev/null
Nie zmienia kodu wyjścia z działaniamysql
. Po prostu ukrywa wyjście, jeśli wystąpi błąd.if ...; then
Część sprawdza kod wyjścia.Świetnym sposobem sprawdzenia, czy baza danych istnieje w PHP jest:
To jest metoda, której zawsze używam.
źródło
Bardzo prosta wyściółka BASH:
źródło
źródło
źródło
Dla tych, którzy używają php z mysqli, to jest moje rozwiązanie. Wiem, że odpowiedź już została udzielona, ale pomyślałem, że przydałoby się ją również jako oświadczenie przygotowane przez mysqli.
źródło
Za pomocą bash:
źródło
Rozwinięty i zawiły (ale ze mną!), Oto system klasy, który stworzyłem, aby sprawdzić, czy DB istnieje, a także aby utworzyć wymagane tabele:
W tym możesz zastąpić nazwę bazy danych
en
dowolną nazwą bazy danych, którą chcesz, a także zmienić skrypt twórcy na dowolny i (mam nadzieję!), Że go nie złamie. Jeśli ktoś może to poprawić, daj mi znać!Uwaga:
Jeśli nie korzystasz z programu Visual Studio z narzędziami PHP, nie martw się o regiony, ponieważ służą one do składania kodu: P
źródło
Za pomocą tego skryptu możesz uzyskać Tak lub Nie istnieje baza danych, jeśli nie istnieje, nie zgłasza wyjątku.
źródło
Kod szyny:
=> entos_development istnieje, entos_development1 nie istnieje
źródło
Jeśli używasz MSSQL zamiast MySQL, zobacz tę odpowiedź z podobnego wątku .
źródło
Korzystam z następującego zapytania:
Następnie sprawdź, czy wynikiem jest FAŁSZ. W przeciwnym razie może wystąpić błąd odmowy dostępu, ale nie mogę tego wiedzieć. Tak więc w przypadku przywilejów można użyć:
jak już wspomniano wcześniej.
źródło
Oto mój sposób na zrobienie tego w skrypcie bash:
źródło
Dla mnie zadziałało następujące rozwiązanie:
źródło
Kolejne rozwiązanie php, ale z PDO:
źródło
Rozwiązanie Golang
źródło
Zachowaj ostrożność podczas sprawdzania istnienia za pomocą podobnego stwierdzenia!
Jeśli w serii niefortunnych zdarzeń twoja zmienna będzie pusta i wykonasz to:
Zwróci WSZYSTKIE bazy danych, informując w ten sposób skrypt wywołujący, że istnieje, ponieważ niektóre wiersze zostały zwrócone.
O wiele bezpieczniejszym i lepszym rozwiązaniem jest używanie znaku równości „=” do testowania istnienia.
Prawidłowym i bezpiecznym sposobem sprawdzenia istnienia jest:
Zauważ, że musisz owinąć bazę danych nazw kolumn backtickami, w tym przypadku nie można użyć swobodnej składni.
W ten sposób, jeśli kod tworzący zmienną „xxxxx” zwróci pusty, wówczas POKAŻ BAZY DANYCH nie zwróci WSZYSTKICH baz danych, ale zwróci pusty zestaw.
źródło