1) Eerst moet u de PDO-optie die u geeft in de opties in de pgsql-array van uw database.php op de juiste manier wijzigen, zoals hieronder wordt aangegeven.
'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) Ten tweede, en het belangrijkste is om ervoor te zorgen dat je de "ATTR_EMULATE_PREPARES" op "true" zet bij elke databaseverbinding die je probeert te maken in je Database.php bestand.
Bijvoorbeeld,
'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
]
]
Zorg ervoor dat u de "ATTR_EMULATE_PREPARES" gebruikt om waar te zijn voor elke databaseverbinding die u in uw toepassing maakt, in uw opmerkingen maakt u verbinding met alleen "pgsql" die alleen de nadruk legt op postgres sql-verbinding, en niet met de database die uw toepassing communiceert die is in postgres.
Ik hoop dat dit je helpt om je vraag op te lossen. Geniet ervan!!!