Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Laravel :Niezdefiniowany indeks:kierowca

Błąd jest spowodowany brakiem driver w Twojej konfiguracji.

Lepszym sposobem zmiany połączenia byłoby zarejestrowanie nowego połączenia w pliku konfiguracyjnym bazy danych i zmiana połączenia w czasie wykonywania.

'connections' => [

    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],

    'newConnection' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => 'db2',
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],
]

Teraz możesz zmienić swoje połączenie, używając nazwy użytej do zdefiniowania nowego połączenia.

Zmień domyślne połączenie

Config::set('database.default', 'newConnection');
DB::reconnect('newConnection');

lub zmień połączenie dla konstruktora zapytań

DB::connection('newConnection')->table('articles')->insert($articles);

lub jeśli używasz modeli Eloquent możesz ustawić domyślne połączenie skojarzone z modelem za pomocą connection właściwość

protected $connection = 'newConnection';

lub zmień w czasie wykonywania, wywołując setConnection

(new User)->setConnection('newConnection');

Jeśli chcesz zmienić aktualne szczegóły połączenia, możesz je zmienić według własnego uznania

Config::set('database.connections.mysql.database', 'db2');

a po zmianach trzeba zadzwonić

DB::reconnect('mysql');

lub

DB::purge('mysql');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaka jest różnica między mysql.createConnection i mysql.createPool w module Node.js MySQL?

  2. INDIE, STD Code Finder Script w PHP, MYSQL, JQUERY

  3. Jak uzyskać dane sprzedaży z ostatnich 3 miesięcy w MySQL?

  4. Czy możliwe jest indeksowanie między tabelami?

  5. Szerokie pole varchar powoduje błąd Żądana konwersja nie jest obsługiwana przy użyciu openquery z połączonym serwerem MySQL