Vaya al Contenido

PHP Crear BD en MySQL - 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

Crear una Base de Datos MySQL con PHP


Una base de datos en MySQL consiste en una o más tablas, donde cada tabla almacena datos de manera estructurada en filas y columnas. Las bases de datos son esenciales en aplicaciones web, ya que permiten almacenar, organizar y acceder a grandes cantidades de información de manera eficiente.
Desde gestionar usuarios hasta almacenar productos, las bases de datos son el corazón de muchas aplicaciones. En este artículo, aprenderás cómo crear una base de datos desde PHP utilizando dos extensiones principales: MySQLi y PDO. Ambas extensiones son ampliamente utilizadas y te permiten interactuar con MySQL, pero tienen diferencias importantes que es útil entender.

¿Qué es la declaración CREATE DATABASE?


La declaración SQL CREATE DATABASE se utiliza para crear una nueva base de datos en MySQL. Este comando es esencial para definir un contenedor donde luego podrás crear tablas para almacenar la información de tu aplicación.
Antes de crear una base de datos, es fundamental asegurarse de que tu usuario de MySQL tiene los privilegios necesarios para realizar esta operación. Los privilegios son permisos específicos que el administrador de la base de datos otorga a los usuarios.
Para crear una base de datos, se necesita el privilegio CREATE. Si no tienes este privilegio, recibirás un error y no podrás completar la operación. Si estás trabajando en un entorno local, generalmente tu usuario “root” tendrá todos los privilegios, pero en entornos de producción es común trabajar con usuarios con permisos más limitados por razones de seguridad.
A continuación, te mostramos cómo usar esta declaración en PHP utilizando tanto MySQLi como PDO.

Crear una Base de Datos con MySQLi


Modo Orientado a Objetos con MySQLi


Este ejemplo utiliza la extensión MySQLi en su modo orientado a objetos para crear una base de datos.

<?php
$servidor = "localhost"; // Dirección del servidor MySQL
$usuario = "usuario"; // Usuario de MySQL
$contraseña = "contraseña"; // Contraseña del usuario

// 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);
}

// Crear la base de datos
$sql = "CREATE DATABASE mi_base_datos";
if ($conn->query($sql) === TRUE) {
echo "Base de datos creada exitosamente";
} else {
echo "Error al crear la base de datos: " . $conn->error;
}

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


Explicación del código


$conn = new mysqli($servidor, $usuario, $contraseña): Esta línea crea una conexión al servidor de MySQL utilizando tres parámetros: el servidor, el nombre de usuario y la contraseña. Aquí no especificamos una base de datos porque aún no existe, nuestro objetivo es crearla. Si la conexión falla, $conn->connect_error contendrá el mensaje de error.
$sql = “CREATE DATABASE mi_base_datos”: Esta es la declaración SQL que le indica a MySQL que cree una nueva base de datos llamada mi_base_datos. Es importante que el nombre de la base de datos siga las convenciones de nomenclatura de MySQL (sin espacios, caracteres especiales, etc.). $conn->query($sql): Ejecuta la consulta SQL y devuelve TRUE si la operación fue exitosa. Si la base de datos se creó correctamente, se muestra un mensaje de éxito.
$conn->close(): Esta línea cierra la conexión al servidor MySQL. Aunque PHP cierra automáticamente las conexiones al final del script, es una buena práctica cerrarlas explícitamente para liberar los recursos del servidor de la base de datos.

Modo Procedural con MySQLi


El siguiente ejemplo utiliza MySQLi en su modo procedural para realizar el mismo proceso.

<?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());
}

// Crear la base de datos
$sql = "CREATE DATABASE mi_base_datos";
if (mysqli_query($conn, $sql)) {
echo "Base de datos creada exitosamente";
} else {
echo "Error al crear la base de datos: " . mysqli_error($conn);
}

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


Explicación del código


mysqli_connect($servidor, $usuario, $contraseña): Esta función establece una conexión con el servidor MySQL utilizando los parámetros proporcionados. Si la conexión falla, la función devuelve false, lo que hace que la siguiente condición if (!$conn) sea verdadera, indicando un error en la conexión.
mysqli_query($conn, $sql): Ejecuta la consulta SQL que crea la base de datos. Si la consulta se ejecuta correctamente, devuelve true; de lo contrario, se ejecuta la parte else y se muestra un mensaje de error con mysqli_error($conn), que contiene detalles del error.
mysqli_close($conn): Cierra la conexión con el servidor MySQL, liberando los recursos asociados a esa conexión.

Crear una Base de Datos con PDO


PDO es una extensión de PHP que proporciona una interfaz uniforme para trabajar con múltiples sistemas de bases de datos. En este ejemplo, creamos una base de datos usando PDO y gestionamos los errores mediante excepciones.

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

try {
// Crear una nueva conexión PDO sin especificar una base de datos
$conn = new PDO("mysql:host=$servidor", $usuario, $contraseña);

// Configurar el modo de errores de PDO
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Crear la base de datos
$sql = "CREATE DATABASE mi_base_datos_pdo";
$conn->exec($sql);

echo "Base de datos creada exitosamente<br>";
} catch(PDOException $e) {
echo "Error: " . $sql . "<br>" . $e->getMessage();
}

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


Explicación del código


new PDO(…): Se establece una conexión con el servidor MySQL sin especificar una base de datos.
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION): Configura PDO para lanzar excepciones en caso de error, lo que facilita el manejo de errores en las consultas.
exec(): Se utiliza para ejecutar la consulta SQL CREATE DATABASE. A diferencia de query(), exec() no devuelve ningún resultado.
catch(PDOException $e): Captura las excepciones generadas en caso de que ocurra algún error durante la ejecución de la consulta.

Beneficios de PDO


Una de las mayores ventajas de utilizar PDO es su capacidad para manejar excepciones de manera eficiente. Las excepciones son una forma de manejar errores en los programas de manera controlada. En lugar de detener abruptamente la ejecución del script cuando ocurre un error, PDO captura el error y permite manejarlo dentro del bloque catch.
En nuestro ejemplo, si hay algún problema al intentar crear la base de datos (como un nombre de base de datos ya existente o problemas de conexión), el código dentro del bloque catch se ejecutará. Esto te da la oportunidad de mostrar un mensaje de error personalizado o registrar el error para depuración sin detener tu aplicación abruptamente.

Conclusión


Crear una base de datos MySQL desde PHP es un proceso sencillo utilizando las extensiones MySQLi o PDO. Dependiendo de tus necesidades, puedes optar por usar MySQLi si trabajas exclusivamente con MySQL o PDO si necesitas flexibilidad para trabajar con diferentes sistemas de bases de datos.
Recuerda siempre verificar que tienes los privilegios necesarios para crear bases de datos y gestionar adecuadamente los errores en caso de que algo falle.
Ya sea que utilices MySQLi o PDO, cerrar la conexión al servidor de la base de datos cuando termines es una buena práctica para evitar sobrecargar los recursos del servidor.
+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"