Icono del sitio Códigos de Programación

Conectar CodeIgniter 4 a una Base de Datos

En este artículo aprenderemos a conectar CodeIgniter 4 a una base de datos, crear tablas básicas y realizar una consulta desde un controlador para mostrar resultados en una vista. Si estás iniciando con este framework, esta guía te ayudará a comprender la configuración esencial para trabajar con MySQL.

Bases de Datos Compatibles con CodeIgniter 4

CodeIgniter 4 ofrece compatibilidad con diferentes motores de base de datos. Según la documentación oficial, soporta:

Además, la documentación indica los drivers necesarios para cada motor. En este caso trabajaremos con MySQL, aunque la forma de conexión es muy similar para los demás motores.

Creación de la Base de Datos

Para este ejemplo utilizamos phpMyAdmin, aunque puedes usar Workbench o cualquier cliente MySQL.

1. Crear la base de datos

  1. En phpMyAdmin selecciona Nueva base de datos.
  2. Asigna el nombre: almacen
  3. Selecciona el collation:
    utf8mb4_unicode_ci (recomendado por su compatibilidad con acentos, tildes y emojis)
  4. Haz clic en Crear.

Creación de Tablas

Creamos dos tablas principales: almacen y productos, con una relación de uno a muchos.

Tabla: almacen

CampoTipoDescripción
idINT AI PKIdentificador de almacén
nombreVARCHAR(50)Nombre del almacén
descripcionTEXT (NULL)Descripción opcional
fecha_altaDATETIMEFecha de alta (obligatorio)

Una vez configurados los campos, guarda la tabla.

Tabla: productos

CampoTipoDescripción
idINT AI PKIdentificador del producto
codigoVARCHAR(20)Código o código de barras
nombreTINYTEXTNombre del producto
stockINTExistencias
id_almacenINTRelación con la tabla almacén
estatusTINYINTEstado del producto
fecha_altaDATETIMEFecha de creación
fecha_modificaDATETIMEÚltima fecha de modificación

Luego crea la relación:

Configuración de la Conexión en CodeIgniter 4

CodeIgniter permite configurar la conexión a la base de datos desde dos ubicaciones:

1. Archivo .env (recomendado)

En la raíz del proyecto, descomenta y modifica:

database.default.hostname = 127.0.0.1
database.default.database = almacen
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi
database.default.port = 3306

Notas importantes:

2. Archivo app/Config/Database.php

También puedes configurar los parámetros ahí. Sin embargo, CodeIgniter prioriza el archivo .env.
Solo usará Database.php si la configuración del .env está desactivada o comentada.

Probando la Conexión Desde un Controlador

Una vez creada la base de datos y configurada la conexión, podemos hacer una consulta simple.

En el controlador Productos, dentro del método index():

  1. Crear la conexión:
$db = \Config\Database::connect();
  1. Realizar la consulta:
$query = $db->query("SELECT codigo, nombre, stock FROM productos");
  1. Obtener los resultados como objetos:
$resultado = $query->getResult();
  1. Enviar los datos a la vista:
$data['productos'] = $resultado;
return view('productos/index', $data);

Mostrando los Datos en la Vista

En la vista productos/index.php, usa un foreach para mostrar los resultados:

<?php foreach ($productos as $producto): ?>
<tr>
    <td><?= $producto->codigo ?></td>
    <td><?= $producto->nombre ?></td>
    <td><?= $producto->stock ?></td>
</tr>
<?php endforeach; ?>

Datos como Arreglo en Lugar de Objeto

Si prefieres trabajar con arreglos:

$resultado = $query->getResultArray();

Accederías así:

$producto['nombre']

Si cambias el modo de obtener resultados, recuerda ajustar la vista para evitar errores como “Trying to get property of non-object”.

Errores Comunes de Conexión

Algunos errores típicos:

1. Base de datos incorrecta

«Unable to connect to the database: Unknown database ‘almacenX'»

Solución: revisa el nombre en .env o Database.php.

2. Contraseña o usuario incorrectos

«Access denied for user ‘root’@’localhost'»

Solución: verifica credenciales.

3. Puerto equivocado

Solución: asegúrate de usar el puerto correcto (3306, salvo cambios).

Guía en Video

Conclusión

CodeIgniter 4 facilita la conexión a bases de datos gracias a su configuración sencilla y consistente. Ya sea desde el .env o desde Database.php, la conexión se gestiona de manera eficiente y limpia. Con esta guía ya puedes crear tu base de datos, conectarte a ella y mostrar los datos en una vista.

Este es el primer paso para implementar módulos más complejos, como CRUDs, relaciones avanzadas o modelos con el sistema ORM de CodeIgniter.

Salir de la versión móvil