es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Unir 2 tablas de bases de datos diferentes en CodeIgniter 4.

Actualmente puedo conectarme a múltiples bases de datos en una aplicación CI 4 utilizando $DBGroup en el modelo, pero ¿es posible seleccionar 2 tablas en diferentes bases de datos?

Por ejemplo, la tabla de usuarios en la base de datos predeterminada y la tabla de productos en otra base de datos.

protected $DBGroup = 'default_db';

public function user_product(){
        $sQuery = "SELECT users.id, users.name, users.email, users.phone, products.id, products.name, products.price FROM users INNER JOIN products ON users.id = products.user_id";

        $query = $this->db->query($sQuery);         

        return $query;
}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible seleccionar tablas en diferentes bases de datos dentro de la misma aplicación en CodeIgniter 4. Puede lograr esto creando una nueva conexión de base de datos en su archivo “app / Config / Database.php” y asignándole un nuevo nombre de grupo. Luego, puede especificar este nuevo nombre de grupo de base de datos en su modelo y usarlo para consultar la tabla deseada en la base de datos diferente.

    Por ejemplo, si tiene una tabla “productos” en una base de datos llamada “products_db”, puede agregar el siguiente código a su archivo “app / Config / Database.php”:

    “ `
    $default = [
    ‘DSN’ => ”,
    ‘hostname’ => ‘localhost’,
    ‘nombre de usuario’ => ‘root’,
    ‘contraseña’ => ”,
    ‘database’ => ‘default_db’,
    // …
    ];

    $productos = [
    ‘DSN’ => ”,
    ‘hostname’ => ‘localhost’,
    ‘nombre de usuario’ => ‘root’,
    ‘contraseña’ => ”,
    ‘database’ => ‘products_db’,
    // …
    ];

    “ `

    Aquí, hemos agregado una nueva configuración de conexión de base de datos con el nombre “productos” con la configuración necesaria para conectarse a la base de datos “products_db”.

    Luego, en su modelo, puede especificar el nuevo nombre de grupo de base de datos como este:

    “ `
    protegido $ DBGroup = ‘productos’;

    public function get_products () {
    $query = $ this-> db-> query (‘SELECT * FROM products’);
    return $ query-> getResult ();
    }

    “ `

    En este ejemplo, hemos especificado el nombre de grupo de base de datos “productos” en el modelo y luego consultamos la tabla “productos” en esa base de datos utilizando los métodos de base de datos predeterminados de CodeIgniter 4.

    Entonces, para responder la pregunta original, sí, puede seleccionar tablas en diferentes bases de datos dentro de la misma aplicación en CodeIgniter 4.

Comments are closed.