Можно ли проверить, существует ли база данных (MySQL) после установления соединения?
Я знаю, как проверить, существует ли таблица в БД, но мне нужно проверить, существует ли БД. Если нет, я должен вызвать другой кусок кода, чтобы создать его и заполнить его.
Я знаю, что все это звучит несколько не элегантно - это быстрое и грязное приложение.
Простой способ проверить, существует ли база данных:
Если база данных с именем 'dbname' не существует, вы получаете пустой набор. Если он существует, вы получите один ряд.
источник
Если вы ищете PHP-скрипт, смотрите ниже.
источник
Из оболочки вроде баш
источник
Вот функция bash для проверки существования базы данных:
Другая альтернатива - просто попытаться использовать базу данных. Обратите внимание, что это также проверяет разрешение:
источник
>/dev/null
гарантирует, что результат всегда будет нулевым. Попробуйте что-то вродеif [ -z "$(mysql ${db} 2>&1 </dev/null)" ]; then ...
.>/dev/null
не меняет код выхода с запущенногоmysql
. Он просто скрывает вывод, если есть ошибка.if ...; then
Часть проверяет код выхода.Отличный способ проверить, существует ли база данных в PHP:
Это метод, который я всегда использую.
источник
Очень простой BASH-one-liner:
источник
источник
источник
Для тех, кто использует PHP с MySQL, это мое решение. Я знаю, что на ответ уже получен ответ, но я подумал, что было бы полезно иметь ответ в виде подготовленного к MySQL запроса.
источник
Используя bash:
источник
Долго запутанный и запутанный (но потерпите меня!), Вот система классов, которую я сделал, чтобы проверить, существует ли БД, а также для создания необходимых таблиц:
В этом случае вы можете заменить имя базы данных
en
на любое имя базы данных, которое вам нравится, а также изменить сценарий создателя на что угодно, и (надеюсь!) Это не сломает его. Если кто-то может улучшить это, дайте мне знать!Примечание.
Если вы не используете Visual Studio с инструментами PHP, не беспокойтесь о регионах, они для свертывания кода: P
источник
С помощью этого скрипта вы можете получить Да или Нет, база данных существует, в случае, если она не существует, она не выдает исключение.
источник
Код Rails:
=> entos_development существует, entos_development1 не существует
источник
Если вы используете MSSQL вместо MySQL, посмотрите этот ответ в аналогичной теме .
источник
Я использую просто следующий запрос:
Затем проверьте, если результат ЛОЖЬ. В противном случае может быть ошибка в доступе, но я не могу этого знать. Таким образом, в случае использования привилегий можно использовать:
как уже упоминалось ранее.
источник
Вот мой способ сделать это внутри скрипта bash:
источник
Следующее решение работало для меня:
источник
Другое решение PHP, но с PDO:
источник
Решение Голанга
источник
Будьте внимательны при проверке существования с помощью оператора like!
Если в серии неудачных событий ваша переменная окажется пустой, и вы в итоге выполните это:
Он вернет ВСЕ базы данных, таким образом сообщая вызывающему скрипту, что он существует, так как были возвращены некоторые строки.
Гораздо безопаснее и лучше использовать знак равенства "=" для проверки существования.
Правильный и безопасный способ проверки на существование должен быть:
Обратите внимание, что вы должны обернуть базу данных имен столбцов обратными метками, в этом случае она не может использовать смягченный синтаксис.
Таким образом, если код, создающий переменную 'xxxxx', вернется пустым, то SHOW DATABASES не вернет ВСЕ базы данных, но вернет пустой набор.
источник