Una aplicación / página web es poca cosa si no podemos ofrecer contenido dinámico y para ello necesitamos conectarnos a la base de datos. En este tutorial voy a explicar cómo conectar la base de datos con CodeIgniter, cómo conectar múltiples bases de datos y un ejemplo de consulta.
Configurar CodeIgniter para la conexión
Configurar CodeIgniter para conectarnos a la BD es muy sencillo, incluso diría que más que emplea el misqli de php. Tenemos que modificar el archivo database.php que se encuentra en /ruta/tuCodeigniter/application/config.
En el archivo databse deberías de ver que tenemos un array asociativo listo para modificar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$db["default"]["hostname"] = "localhost"; $db["default"]["username"] = "root"; $db["default"]["password"] = ""; $db["default"]["database"] = "database_name"; $db["default"]["dbdriver"] = "mysql"; $db["default"]["dbprefix"] = ""; $db["default"]["pconnect"] = TRUE; $db["default"]["db_debug"] = FALSE; $db["default"]["cache_on"] = FALSE; $db["default"]["cachedir"] = ""; $db["default"]["char_set"] = "utf8"; $db["default"]["dbcollat"] = "utf8_general_ci"; $db["default"]["swap_pre"] = ""; $db["default"]["autoinit"] = TRUE; $db["default"]["stricton"] = FALSE; |
Valores comunes
Los valores que más se manipulan y deben de basta para tener lista nuestra conexión a base de datos con CodeIgniter son los siguientes:
Directiva | Descripcion |
---|---|
$db[«default»][«hostname»] | El servidor donde está la BD. Se pone localhost o la IP, |
$db[«default»][«username»] | Nombre de usuario de acceso a la BD |
$db[«default»][«password»] | Contraseña de acceso a la BD |
$db[«default»][«database»] | El nombre de la base de datos |
Otros valores
Los siguientes valores normalmente no se tocan pero puede darse el caso si empleas otras base de datos diferente a mysql o tu web precisa de unas características más concretas.
Opción | Descripcion |
---|---|
$db[«default»][«dbdriver»] | El moto de base de datos que empleamos. Normalmente es «mysql» |
$db[«default»][«dbprefix»] | Si tus tablas tienen un prefijo estilo WordPress,Por ejemplo tienes una tabla así: miprefijo_usuarios puedes indicar a CodeIGniter que empleas el prefijo «miprefijo» y así no tener que indicarlo en cada conexión |
$db[«default»][«pconnect»] | Sólo acepta TRUE o FALSE. Indica si quieres mantener una conexión perissnte con la base de datos. |
$db[«default»][«db_debug»] | Sólo acepta TRUE o FALSE. Especifica si quieres mostrar los errores de BD. Normalmente está en blanco pero, debería ser FALSE en producción y TRUE en desarrollo. |
$db[«default»][«cache_on»] | Indica si la base de datos tiene caché en la consultas. TRUE o FALSE. |
$db[«default»][«cachedir»] | Indica la ruta absoluta del caché de la base de datos. |
$db[«default»][«char_set»] | Especifica el set de caracteres que usa CodeIgniter. Normalmente es utf8. |
$db[«default»][«dbcollat»] | La colación de caracteres. El utf8_general_ci se suele dejar. |
$db[«default»][«port»] | El puerto por defecto que emplea la Base de datos. En caso de Mysql sería 3306. |
Como conectar múltiples base de datos
Si tenemos varias bases de datos, podemos configurar varias conexiones y emplear una u otra con cuando realicemos la conexión con $this->db->database(). Para crear otra configuración basta con copiar la conexión default y cambiar default por el nombre que queramos darle a la nueva conexión además de cambiar los valores de bases de datos, usuarios, pass etc.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$db["alternativo"]["hostname"] = "localhost"; $db["alternativo"]["username"] = "root"; $db["alternativo"]["password"] = ""; $db["alternativo"]["database"] = "database_name"; $db["alternativo"]["dbdriver"] = "mysql"; $db["alternativo"]["dbprefix"] = ""; $db["alternativo"]["pconnect"] = TRUE; $db["alternativo"]["db_debug"] = FALSE; $db["alternativo"]["cache_on"] = FALSE; $db["alternativo"]["cachedir"] = ""; $db["alternativo"]["char_set"] = "utf8"; $db["alternativo"]["dbcollat"] = "utf8_general_ci"; $db["alternativo"]["swap_pre"] = ""; $db["alternativo"]["autoinit"] = TRUE; $db["alternativo"]["stricton"] = FALSE; |
Incluso en el mismo archivo podemos usar un swtich case para activar una conexión u otra en función del dominio en el que estemos.
1 2 3 4 5 6 7 8 |
switch($_SERVER["SERVER_NAME"]) { case "localhost": $active_group = "alternativo"; break; case "midominio.com": $active_group = "default" break; } |
Cuando queramos conectarnos al BD bastará con emplear el siguiente comando en el modelo donde queramos realizar las consultas.
1 |
$this->load->database(); |
Una vez escrito el comando, podemos emplear cualquiera de las funciones para realizar nuestras consultas.
La función database sin parámetros emplearía la conexión «default». Si queréis usar la conexión «alternativo» tendrías que escribir
1 |
$this->load->database('alternativo', FALSE); |
Esta función se compone de 2 argumentos: uno es el nombre de conexión al base de datos a usar y el el segundo parámetro es un boleano que nos permite indiciar si queremos que nos devuelva un objeto conexión o no.
Y hasta aquí cómo conectarnos a la base de datos con CodeIgniter. A seguir picando 🙂