1) Najpierw musisz zmienić opcję PDO, którą podajesz w opcjach w tablicy pgsql twojego database.php we właściwy sposób, jak podano poniżej.
'pgsql' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '5434'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'prefer',
'options' => [
PDO::ATTR_EMULATE_PREPARES => true
]
]
2) Po drugie, najważniejszą rzeczą jest upewnienie się, że przy każdym połączeniu z bazą danych, które próbujesz połączyć w swoim Database.php, używasz ustawienia „ATTR_EMULATE_PREPARES” na „prawda”. plik.
Na przykład
'test' => [
'driver' => 'pgsql',
'host' => env('test', '127.0.0.1'),
'port' => env('test', '5434'),
'database' => env('DB_TEST_DATABASE', 'test'),
'username' => env('DB_USERNAME', 'test'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'prefer',
'options' => [
PDO::ATTR_EMULATE_PREPARES => true
]
],
'test1' => [
'driver' => 'pgsql',
'host' => env('test1', '127.0.0.1'),
'port' => env('test1', '5434'),
'database' => env('DB_TEST1_DATABASE', 'test1'),
'username' => env('DB_USERNAME', 'test'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'prefer',
'options' => [
PDO::ATTR_EMULATE_PREPARES => true
]
]
Upewnij się, że używasz "ATTR_EMULATE_PREPARES" dla każdego połączenia z bazą danych, które tworzysz w swojej aplikacji, w swoich komentarzach tworzysz połączenie tylko z "pgsql", który podkreśla tylko połączenie postgres sql, a nie z bazą danych, którą komunikuje Twoja aplikacja jest w postgresie.
Mam nadzieję, że pomoże to w rozwiązaniu Twojego zapytania. Ciesz się!!!