¿Es posible verificar si existe una base de datos (MySQL) después de haber realizado una conexión?
Sé cómo verificar si existe una tabla en una base de datos, pero necesito verificar si la base de datos existe. Si no, tengo que llamar a otro código para crearlo y completarlo.
Sé que todo esto suena poco elegante: esta es una aplicación rápida y sucia.
Una forma simple de verificar si existe una base de datos es:
Si la base de datos con el nombre 'dbname' no existe, obtendrá un conjunto vacío. Si existe, obtienes una fila.
fuente
Si está buscando un script php, vea a continuación.
fuente
Desde la cáscara como bash
fuente
Aquí hay una función bash para verificar si existe una base de datos:
Otra alternativa es tratar de usar la base de datos. Tenga en cuenta que esto también verifica el permiso:
fuente
>/dev/null
garantiza que el resultado sea siempre nulo. Intenta algo comoif [ -z "$(mysql ${db} 2>&1 </dev/null)" ]; then ...
.>/dev/null
no cambia el código de salida para que no se ejecutemysql
. Simplemente oculta la salida si hay un error. Laif ...; then
parte verifica el código de salida.Una excelente manera de verificar si existe una base de datos en PHP es:
Ese es el método que siempre uso.
fuente
Un BASH-one-liner muy simple:
fuente
fuente
fuente
Para aquellos que usan php con mysqli, esta es mi solución. Sé que la respuesta ya ha sido respondida, pero pensé que sería útil tener la respuesta como una declaración preparada mysqli también.
fuente
Usando bash:
fuente
Sin aliento y complicado (¡pero tengan paciencia conmigo!), Aquí hay un sistema de clases que hice para verificar si existe un DB y también para crear las tablas requeridas:
En esto, puede reemplazar el nombre de la base de datos
en
con cualquier nombre de base de datos que desee y también cambiar el script del creador a cualquier cosa y (¡con suerte!) No lo romperá. Si alguien puede mejorar esto, ¡hágamelo saber!Nota
Si no usa Visual Studio con herramientas PHP, no se preocupe por las regiones, son para plegar el código: P
fuente
Con este script, puede obtener la base de datos Sí o No, en caso de que no exista, no arroja Excepción.
fuente
Código de rieles:
=> entos_development existe, entos_development1 no existe
fuente
Si está utilizando MSSQL en lugar de MySQL, vea esta respuesta desde un hilo similar .
fuente
Estoy usando simplemente la siguiente consulta:
Luego verifique si el resultado es FALSO. De lo contrario, puede haber un error de acceso denegado, pero no puedo saberlo. Entonces, en caso de privilegios involucrados, uno puede usar:
como ya se mencionó anteriormente.
fuente
Aquí está mi forma de hacerlo dentro de un script bash:
fuente
La siguiente solución funcionó para mí:
fuente
Otra solución php, pero con PDO:
fuente
Solución de Golang
fuente
¡Tenga cuidado al verificar la existencia con una declaración similar!
Si en una serie de eventos desafortunados su variable termina estando vacía y termina ejecutando esto:
Devolverá TODAS las bases de datos, indicando al script de llamada que existe desde que se devolvieron algunas filas.
Es mucho más seguro y una mejor práctica usar un signo igual "=" para probar la existencia.
La forma correcta y segura de probar la existencia debería ser:
Tenga en cuenta que debe envolver la base de datos de nombres de columnas con comillas inversas, en este caso no puede usar una sintaxis relajada.
De esta manera, si el código que crea la variable 'xxxxx' se vuelve en blanco, SHOW DATABASES no devolverá TODAS las bases de datos, pero devolverá un conjunto vacío.
fuente