Vaya al Contenido

PHP Eliminar BD y Tabla - SuperHispano

Saltar menú
SuperHispano
+34 012 345 678
info@example.com
España 03:19:18 sábado 07/02/26
Saltar menú
Saltar menú
Saltar menú
Taller > PHP > Base de Datos MySQL

Eliminar Base de Datos y Tabla MySQL con PHP


En MySQL, eliminar una base de datos o una tabla es una operación irreversible que elimina permanentemente todos los datos que contienen.
Esta operación es útil cuando una base de datos o una tabla ya no es necesaria, o cuando se debe hacer limpieza para liberar espacio en el servidor.
Sin embargo, es crucial realizar una copia de seguridad de tus datos antes de proceder, ya que cualquier error puede llevar a la pérdida permanente de información importante.

Advertencia Importante


¡Cuidado! Eliminar una base de datos o una tabla es una acción irreversible. Una vez eliminada, toda la información contenida se pierde para siempre. Asegúrate de realizar copias de seguridad y estar completamente seguro antes de ejecutar estas operaciones.

Eliminar una Base de Datos con PHP


Cuando ya no necesitas una base de datos en tu servidor MySQL, puedes eliminarla utilizando la consulta SQL DROP DATABASE. A continuación, veremos cómo hacerlo utilizando las extensiones MySQLi y PDO, dos de las formas recomendadas para interactuar con bases de datos desde PHP.
En cada uno de estos ejemplos, también incluimos un paso opcional para verificar si la base de datos existe antes de intentar eliminarla, lo cual es una buena práctica para evitar errores innecesarios.

Usando MySQLi Orientado a Objetos


Este ejemplo muestra cómo eliminar una base de datos utilizando la extensión MySQLi en modo orientado a objetos. Antes de proceder con la eliminación, verificamos si la base de datos existe para evitar posibles errores.

<?php
$servidor = "localhost";
$usuario = "usuario";
$contraseña = "contraseña";

// Crear conexión
$conn = new mysqli($servidor, $usuario, $contraseña);

// Verificar conexión
if ($conn->connect_error) {
die("Error en la conexión: " . $conn->connect_error);
}

// Verificar si la base de datos existe
$sql_check = "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'mi_base_datos'";
$resultado = $conn->query($sql_check);

if ($resultado->num_rows > 0) {
// Eliminar la base de datos
$sql = "DROP DATABASE mi_base_datos";
if ($conn->query($sql) === TRUE) {
echo "Base de datos eliminada exitosamente";
} else {
echo "Error al eliminar la base de datos: " . $conn->error;
}
} else {
echo "La base de datos no existe.";
}

// Cerrar la conexión
$conn->close();
?>


Usando MySQLi Procedural


Aquí usamos MySQLi en su modo procedural para eliminar la base de datos. Al igual que en el ejemplo anterior, primero verificamos si la base de datos existe antes de eliminarla.

<?php
$servidor = "localhost";
$usuario = "usuario";
$contraseña = "contraseña";

// Crear conexión
$conn = mysqli_connect($servidor, $usuario, $contraseña);

// Verificar conexión
if (!$conn) {
die("Error en la conexión: " . mysqli_connect_error());
}

// Verificar si la base de datos existe
$sql_check = "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'mi_base_datos'";
$resultado = mysqli_query($conn, $sql_check);

if (mysqli_num_rows($resultado) > 0) {
// Eliminar la base de datos
$sql = "DROP DATABASE mi_base_datos";
if (mysqli_query($conn, $sql)) {
echo "Base de datos eliminada exitosamente";
} else {
echo "Error al eliminar la base de datos: " . mysqli_error($conn);
}
} else {
echo "La base de datos no existe.";
}

// Cerrar la conexión
mysqli_close($conn);
?>


Usando PDO


Utilizando PDO, también podemos eliminar una base de datos de manera similar. En este ejemplo, también verificamos si la base de datos existe antes de eliminarla.

<?php
$servidor = "localhost";
$usuario = "usuario";
$contraseña = "contraseña";

try {
// Crear conexión PDO
$conn = new PDO("mysql:host=$servidor", $usuario, $contraseña);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Verificar si la base de datos existe
$sql_check = "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'mi_base_datos_pdo'";
$resultado = $conn->query($sql_check);

if ($resultado->rowCount() > 0) {
// Eliminar la base de datos
$sql = "DROP DATABASE mi_base_datos_pdo";
$conn->exec($sql);
echo "Base de datos eliminada exitosamente";
} else {
echo "La base de datos no existe.";
}

} catch(PDOException $e) {
echo "Error al eliminar la base de datos: " . $e->getMessage();
}

// Cerrar la conexión
$conn = null;
?>


Eliminar una Tabla con PHP


Cuando solo deseas eliminar una tabla de tu base de datos, el proceso es similar al de eliminar una base de datos. Utilizas la consulta SQL DROP TABLE para borrar la tabla y su contenido permanentemente.
A continuación, se muestran ejemplos utilizando MySQLi y PDO para eliminar una tabla llamada empleados.

Usando MySQLi Orientado a Objetos


Este ejemplo muestra cómo eliminar una tabla utilizando la extensión MySQLi en modo orientado a objetos. Primero, se verifica si la tabla existe antes de proceder a eliminarla para evitar errores.

<?php
$servidor = "localhost";
$usuario = "usuario";
$contraseña = "contraseña";
$base_datos = "mi_base_datos";

// Crear conexión
$conn = new mysqli($servidor, $usuario, $contraseña, $base_datos);

// Verificar conexión
if ($conn->connect_error) {
die("Error en la conexión: " . $conn->connect_error);
}

// Verificar si la tabla existe
$sql_check = "SHOW TABLES LIKE 'empleados'";
$resultado = $conn->query($sql_check);

if ($resultado->num_rows > 0) {
// Eliminar la tabla
$sql = "DROP TABLE empleados";
if ($conn->query($sql) === TRUE) {
echo "Tabla eliminada exitosamente";
} else {
echo "Error al eliminar la tabla: " . $conn->error;
}
} else {
echo "La tabla no existe.";
}

// Cerrar la conexión
$conn->close();
?>


Usando MySQLi Procedural


Este ejemplo utiliza la extensión MySQLi en modo procedural para eliminar la tabla empleados. Al igual que en el ejemplo anterior, primero verificamos si la tabla existe.

<i><?php
$servidor = "localhost";
$usuario = "usuario";
$contraseña = "contraseña";
$base_datos = "mi_base_datos";

// Crear conexión
$conn = mysqli_connect($servidor, $usuario, $contraseña, $base_datos);

// Verificar conexión
if (!$conn) {
die("Error en la conexión: " . mysqli_connect_error());
}

// Verificar si la tabla existe
$sql_check = "SHOW TABLES LIKE 'empleados'";
$resultado = mysqli_query($conn, $sql_check);

if (mysqli_num_rows($resultado) > 0) {
// Eliminar la tabla
$sql = "DROP TABLE empleados";
if (mysqli_query($conn, $sql)) {
echo "Tabla eliminada exitosamente";
} else {
echo "Error al eliminar la tabla: " . mysqli_error($conn);
}
} else {
echo "La tabla no existe.";
}

// Cerrar la conexión
mysqli_close($conn);
?>

Usando PDO


En este ejemplo, utilizamos la extensión PDO para eliminar la tabla empleados de la base de datos. También verificamos si la tabla existe antes de proceder a eliminarla.

<?php
$servidor = "localhost";
$usuario = "usuario";
$contraseña = "contraseña";
$base_datos = "mi_base_datos_pdo";

try {
// Crear conexión PDO
$conn = new PDO("mysql:host=$servidor;dbname=$base_datos", $usuario, $contraseña);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Verificar si la tabla existe
$sql_check = "SHOW TABLES LIKE 'empleados'";
$resultado = $conn->query($sql_check);

if ($resultado->rowCount() > 0) {
// Eliminar la tabla
$sql = "DROP TABLE empleados";
$conn->exec($sql);
echo "Tabla eliminada exitosamente";
} else {
echo "La tabla no existe.";
}

} catch(PDOException $e) {
echo "Error al eliminar la tabla: " . $e->getMessage();
}

// Cerrar la conexión
$conn = null;
?>


Conclusión


Eliminar bases de datos o tablas es una tarea que debe realizarse con cuidado. Siempre asegúrate de tener copias de seguridad y de que estás trabajando en la base de datos correcta antes de ejecutar comandos como DROP DATABASE o DROP TABLE.
Además, utilizar las funciones adecuadas en PHP como MySQLi y PDO asegura que tu código sea compatible con las versiones más recientes de PHP y te permite manejar errores de manera eficiente.
Al seguir estas mejores prácticas, puedes evitar problemas críticos de pérdida de datos y mejorar la seguridad y estabilidad de tu aplicación.
+34 012 345 678
+34 012 345 678 (fax)
example@superhispano.com
Creado con WebSite X5
Regreso al contenido
Icono de la aplicación
SuperHispano Instale esta aplicación en su pantalla de inicio para una mejor experiencia
Toque Botón de instalación en iOS y luego "Agregar a su pantalla"