1) Đầu tiên, bạn cần thay đổi tùy chọn PDO mà bạn đang cung cấp trong các tùy chọn trong mảng pgsql của database.php theo cách phù hợp như được đưa ra bên dưới.
'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) Thứ hai, và điều quan trọng nhất là đảm bảo rằng bạn sử dụng đặt "ATTR_EMULATE_PREPARES" thành "true" với mỗi kết nối cơ sở dữ liệu mà bạn cố gắng kết nối trong Database.php của mình tệp.
Ví dụ:
'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
]
]
Vui lòng đảm bảo sử dụng "ATTR_EMULATE_PREPARES" thành true cho mỗi kết nối cơ sở dữ liệu mà bạn thực hiện trong ứng dụng của mình, trong nhận xét của bạn, bạn chỉ kết nối với "pgsql" nhấn mạnh chỉ cho kết nối sql postgres chứ không phải với cơ sở dữ liệu mà ứng dụng của bạn giao tiếp. nằm trong postgres.
Hy vọng điều này sẽ giúp bạn giải quyết thắc mắc của mình. Hãy tận hưởng !!!