sql >> Databáze >  >> RDS >> Mysql

Připojte se k mnoha databázím současně v Laravel 5.2

Úvod – 2 připojení

Za předpokladu, že potřebujete 2 připojení:výchozí a přizpůsobené , jejich konfiguraci byste poskytli ve svém config/database.php jako obvykle pak potřebujete:

>>> DB::connection()->getDatabaseName()
=> "default"

>>> DB::connection('custom')->getDatabaseName()
=> "customized"

// change the config...
>>> config(['database.connections.custom.database' => 'new_customized_db'])
=> null

// ...but once the connection is already open, config change doesn't affect it...
>>> DB::connection('custom')->getDatabaseName()
=> "customized"

// ...so we need to get rid of existing connection completely (reconnect() won't work)
>>> DB::purge('custom')
=> null

>>> DB::connection('custom')->getDatabaseName()
=> "new_customized_db"

Více připojení

Nahoře vidíte, co je třeba udělat. Ve vašem případě můžete jednoduše zadat konfiguraci celého připojení pro každé nové připojení, které potřebujete, a bude fungovat podle očekávání:

>>> config(['database.connections.on_the_fly' => [
>>>    'database' => 'provided_on_the_fly',
>>>    ...
>>> ]])
=> null

>>> DB::connection('on_the_fly')->getDatabaseName()
=> "provided_on_the_fly"

Výmluvné

Pokud chcete pro své modely Eloquent použít vlastní připojení můžete použít SomeModel::on('on_the_fly')->find($id) (načtená instance modelu použije připojení pro všechny následující operace)




  1. MySql vybere dynamické hodnoty řádků jako názvy sloupců

  2. Jaký je nejjednodušší způsob importu excelového listu do mysql

  3. MySQL:Vícesloupcové spojení napříč více tabulkami?

  4. MySQL WHERE IN () + AND vrací PDO pouze jeden řádek