sql >> Database >  >> RDS >> PostgreSQL

Laravel-gegevens komen niet overeen tijdens het gebruik van \PDO::ATTR_EMULATE_PREPARES => waar

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!!!



  1. app kan niet linken naar mysql-bibliotheken (CentOS)

  2. Enkele aanhalingstekens opslaan in varchar-variabele SQL Server 2008

  3. 5 banen waarvoor Microsoft-toegang is vereist

  4. Hoe maak je een deel van de tekst vet uit arraylist in Android