Laravel : Erreur [PDOException] : pilote introuvable dans PostgreSQL
P粉722409996
2023-07-31 18:16:43
<p>Traduire : "J'essaie de me connecter à une base de données PostgreSQL via Laravel afin d'exécuter la commande php artisan migrate, mais cela ne semble pas réussir car elle lit le nom de la base de données MySQL.<br / ><br /> ;Voici les commandes du fichier database.php :</p><p><br /></p>
<pre class="brush:php;toolbar:false;">'connections' =>
'sqlite' => tableau(
'pilote' => 'sqlite',
'base de données' => __DIR__.'/../database/production.sqlite',
'préfixe' => '',
),
'mysql' => tableau(
'pilote' => 'mysql',
'hôte' => 'localhost',
'base de données' => 'base de données',
'nom d'utilisateur' => 'racine',
'mot de passe' => '',
'jeu de caractères' => 'utf8',
'collage' => 'utf8_unicode_ci',
'préfixe' => '',
),
'pgsql' => tableau(
'pilote' => 'pgsql',
'hôte' => 'localhost',
'base de données' => 'postgres',
'nom d'utilisateur' => 'postgres',
'mot de passe' => 'racine',
'jeu de caractères' => 'utf8',
'préfixe' => '',
'schéma' => 'public',
),
'sqlsrv' => tableau(
'pilote' => 'sqlsrv',
'hôte' => 'localhost',
'base de données' => 'base de données',
'nom d'utilisateur' => 'racine',
'mot de passe' => '',
'préfixe' => '',
),
),</pré>
<p>Si je supprime le chemin vers MySQL, j'obtiens : </p>
<pre class="brush:php;toolbar:false;">[InvalidArgumentException]
Base de données [mysql] non configurée.</pre>
<p><br /></p><hr />
<strong>Traduire : "Modifier : J'ai reçu une erreur 'PDOException : impossible de trouver le pilote' en essayant d'exécuter la commande php artisan migrate. J'utilise WAMP et sous Windows 8.1. La base de données utilise PostgreSQL."< /strong><p><br /></p>
<p><br /></p><hr />
<strong>EDIT :</strong> Traduire : "J'ai essayé une série de solutions alternatives mais le problème n'est toujours pas résolu. J'ai vérifié php.ini dans Apache, WAMP (à partir du dossier php) et le fichier PostgreSQL. extension_dir est défini correctement comme suit -> extension_dir = "c:/wamp/bin/php/php5.5.12/ext/". extension=pdo_pgsql.dll n'a pas été commenté < dans les « Variables système » et j'ai redémarré l'ordinateur, mais toujours sans succès.<br /><br />Merci pour votre aide jusqu'à présent. <br /><br />Voici mon pilote php_pdo_driver.h et php_pdo.h situés dans C:Program Files (x86)PostgreSQLEnterpriseDB-ApachePHPphpSDKincludeextpdo<br /><br />Depuis phpinfo Informations obtenues : <br /><p><br /></p>
<blockquote>
<p>Traduire : "PHP version 5.5.12<br /><br /> Commande de configuration du compilateur MSVC11 (Visual C++ 2012) cscript /nologo configure.js "--enable-snapshot-build" "- - Disable-isapi" "--enable-debug-pack" "--sans-mssql" "--sans-pdo-mssql" "--sans-pi3web" "--with-pdo-oci=C:php- sdkoralex64instantclient10sdk ,shared" "--with-oci8=C:php-sdkoraclex64instantclient10sdk,shared" "--with-oci8-11g=C:php-sdkoraclex64instantclient11sdk,shared" "--enable-object-out-dir=../ obj /" "--enable-com-dotnet=shared" "--with-mcrypt=static" "--disable-static-analyze" "--with-pgo""</p><p>< ; br />≪/p>
</blockquote><p><br /></p>
"Pour PDOException : impossible de trouver le pilote pour l'erreur MySQL, s'il s'agit d'un système d'exploitation basé sur Debian
Traduire : "Assurez-vous de configurer la clé 'default' dans app/config/database.php.
Pour PostgreSQL, la configuration doit être 'default' => 'postgres'.
Si vous recevez [PDOException], vous ne pourrez pas recherchez une erreur de pilote, veuillez vérifier si vous avez installé la bonne extension PHP. Vous devez installer et activer pdo_pgsql.so et pgsql.so. La façon d'installer ces extensions varie selon le système d'exploitation
Pour Windows, l'extension pgsql devrait déjà être fournie avec. la version officielle. La distribution PHP est pré-téléchargée. Modifiez simplement votre fichier php.ini et décommentez les lignes suivantes extension=pdo_pgsql.so et extension=pgsql.so
De plus, dans php.ini, assurez-vous que extension_dir est défini sur. le bon répertoire. .il doit s'agir d'un dossier nommé extensions ou ext ou similaire dans votre répertoire d'installation PHP
Enfin, copiez libpq.dll de C:wampbinphpphp5.* vers C:wampbinapache*bin et redémarrez le tout via le service d'interface WampServer.
Si vous obtenez toujours l'exception, vous devrez peut-être ajouter le répertoire bin de PostgreSQL à votre variable d'environnement PATH.
Propriétés système -> Onglet Avancé -> Variables d'environnement
Dans le groupe « Variables système » dans la moitié inférieure de la fenêtre, faites défiler et recherchez l'entrée PATH.http://php.net/manual/en/install.pecl.windows.php