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

Грешка при несъответствие на данни на Laravel при използване на \PDO::ATTR_EMULATE_PREPARES => вярно

1) Първо, трябва да промените опцията за PDO, която давате в опциите в pgsql масива на вашата база данни.php, правилният начин е както е дадено по-долу.

'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) Второ, и най-важното нещо е да се уверите, че използвате задаване на „ATTR_EMULATE_PREPARES“ на „true“ с всяка връзка с база данни, която се опитвате да свържете във вашата Database.php файл.

Например,

'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
        ]           
    ]

Моля, уверете се, че използвате „ATTR_EMULATE_PREPARES“ на true за всяка връзка с база данни, която правите във вашето приложение, във вашите коментари правите връзка само с „pgsql“, което е акцент само за postgres sql връзка, а не с базата данни, която вашето приложение комуникира, която е в postgres.

Надявам се това да ви помогне да разрешите запитването си. Насладете се!!!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Подобряване на функция, която UPSERTs въз основа на входен масив

  2. PostreSQL 10 не успява да стартира на Ubuntu 18.04, работещ на Windows подсистема за Linux

  3. Симулирате CREATE DATABASE, АКО НЕ СЪЩЕСТВУВА за PostgreSQL?

  4. Най-добрият начин за избор на произволни редове PostgreSQL

  5. Кумулативен сбор от стойности по месеци, попълване на липсващите месеци