Conectándose a su base de datos

Conexión a una base de datos

Conexión al grupo predeterminado

Puede conectarse a su base de datos agregando esta línea de código en cualquier función donde sea necesario, o en el constructor de su clase para hacer el base de datos disponible globalmente en esa clase.

$db = \Config\Database::connect();

Si la función anterior no contiene ninguna información en el primer parámetro, se conectará al grupo predeterminado especificado en la configuración de su base de datos archivo. Para la mayoría de las personas, este es el método de uso preferido.

Existe un método de conveniencia que es puramente un resumen de la línea anterior. y se proporciona para su comodidad:

$db = db_connect();

Parámetros disponibles

\Config\Database::connect($group = null, bool $getShared = true): BaseConnection

  1. $group: El nombre del grupo de la base de datos, una cadena que debe coincidir con el nombre de la propiedad de la clase de configuración. El valor predeterminado es Config\Database::$defaultGroup.

  2. $getShared: verdadero/falso (booleano). Si se debe devolver la conexión compartida (consulte Conexión a múltiples bases de datos a continuación).

Conexión con un grupo específico

El primer parámetro de esta función se puede utilizar opcionalmente para especifique un grupo de base de datos particular desde su archivo de configuración. Ejemplos:

Para elegir un grupo específico de su archivo de configuración, puede hacer esto:

$db = \Config\Database::connect('group_name');

Donde group_name es el nombre del grupo de conexión de su configuración archivo.

Múltiples conexiones a la misma Base de datos

De forma predeterminada, el método connect() devolverá la misma instancia del conexión de base de datos cada vez. Si necesita tener una conexión separada a la misma base de datos, envíe false como segundo parámetro:

$db = \Config\Database::connect('group_name', false);

Conexión a múltiples bases de datos

Si necesita conectarse a más de una base de datos simultáneamente, puede hazlo de la siguiente manera:

$db1 = \Config\Database::connect('group_one');
$db2 = \Config\Database::connect('group_two');

Nota: Cambie las palabras group_one y group_two a las específicas nombres de grupos a los que se está conectando.

Nota

You don’t need to create separate database configurations if you Sólo es necesario utilizar una base de datos diferente en la misma conexión. Tú Puede cambiar a una base de datos diferente cuando lo necesite, así:

$db->setDatabase($database2_name);

Conexión con configuraciones personalizadas

Puede pasar una serie de configuraciones de base de datos en lugar de un nombre de grupo para obtener una conexión que utiliza su configuración personalizada. La matriz pasada debe ser El mismo formato que los grupos están definidos en el archivo de configuración:

$custom = [
    'DSN'      => '',
    'hostname' => 'localhost',
    'username' => '',
    'password' => '',
    'database' => '',
    'DBDriver' => 'MySQLi',
    'DBPrefix' => '',
    'pConnect' => false,
    'DBDebug'  => true,
    'charset'  => 'utf8',
    'DBCollat' => 'utf8_general_ci',
    'swapPre'  => '',
    'encrypt'  => false,
    'compress' => false,
    'strictOn' => false,
    'failover' => [],
    'port'     => 3306,
];
$db = \Config\Database::connect($custom);

Reconectar / Mantener viva la conexión

Si se excede el tiempo de espera de inactividad del servidor de base de datos mientras realiza algo de trabajo pesado de PHP (procesar una imagen, por ejemplo), deberías considere hacer ping al servidor usando el método reconnect() antes enviar más consultas, lo que puede mantener viva la conexión con gracia o restablecerlo.

Importante

If you are using MySQLi database driver, the reconnect() method no hace ping al servidor pero cierra la conexión y luego se conecta nuevamente.

$db->reconnect();

Cerrar manualmente la conexión

Mientras Higgs se encarga inteligentemente de cerrar tu base de datos conexiones, puede cerrar explícitamente la conexión.

$db->close();