Mysql
 sql >> база данни >  >> RDS >> Mysql

Laravel променя параметрите на базата данни по време на изпълнение

Реших по следния начин:

Частта от config::set беше грешна, за достъп до конфигурацията на базата данни трябва да използвам стила точка (.) по този начин:

Config::set("database.connections.sqlsrv.host", Crypt::decrypt($cliente->Server));
Config::set("database.connections.sqlsrv.database", $cliente->NomeDB);
Config::set("database.connections.sqlsrv.username", Crypt::decrypt($cliente->Username));
Config::set("database.connections.sqlsrv.password", Crypt::decrypt($cliente->Password));

И след това се свържете отново с DB:

\Illuminate\Support\Facades\DB::reconnect();

Моят съвет за всички, които имат този проблем, е да използвате двойна db връзка, една за основната db (сървърна db) и една за клиентска db. По този начин можете да превключите и към двата db, с този прост код:

Config::set("database.default", "sqlsrvCustomer");
\Illuminate\Support\Facades\DB::reconnect();

С първата команда можете да изберете клиентската база данни, а с втората можете да се свържете с нея.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLAlchemy DELETE Грешка, причинена от наличието както на мързеливо натоварване, така и на динамична версия на една и съща връзка

  2. поръчка по rand() създава проблеми за големи публикации

  3. 4 начина за намиране на дублиращи се редове в MySQL

  4. Ограничаване на колона за приемане само на 2 стойности

  5. Вмъквания на асинхронна база данни - python + mysql