Erreur fatale: appel à une fonction non définie pg connect
J'utilise Windows 7, php 5.3.5 et Wamp server. J'ai deux fichiers php: déclencheur.php et background.php.
Je veux vérifier les antécédents.php comme un processus de fond. J'ai appeler ce fichier de la gâchette.php. Pour accomplir ceci j'ai utilisé la méthode ci-dessous.
J'ai inclus le code suivant dans trigger.php pour faire background.php à traiter en arrière-plan.
$handle = popen('start /b C:wampbinphpphp5.3.5php.exe C:wampwwwemail3.php','r');
en arrière-plan.php j'ai le code suivant pour me connecter à la base de données.
$conn_string = "host=localhost port=5432 dbname=tagbase user=postgres password=postgres";
maintenant, en analysant cette ligne je reçois l'erreur suivante:
Fatal error: Call to undefined function pg_connect () in C:wampwwwbackground.PHP sur la ligne 3 pile D'appels: 0.0002 322792 1. {principal}() C:wampwwwbackground.php: 0
en cherchant dans internet j'ai trouvé quelques solutions, et ai fait des changements comme recommandé ci-dessous dans php.ini,
uncommented, extension=php_pdo_pgsql.dll,
uncommented, extension=php_pgsql.dll,
uncommented, extension_dir = "c:/wamp/bin/php/php5.3.5/ext/",
j'ai aussi php_pdo_pgsql.dll et php_pgsql.fichiers dll dans le dossier c:/wamp/bin/php/php5.3.5/ext/ .
toute suggestion est appréciée.
3 réponses
Apache 2.2.La configuration de X
Ajouter la ligne suivante à l'Apache 2.2.x httpd.configuration conf:
LoadFile "C:/Program Files/PostgreSQL/{version}/bin/libpq.dll"
au-dessus de la ligne doit être inscrit avant la ligne suivante.
LoadModule php5_module "c:/wamp/bin/php/php5.2.11/php5apache2_2.dll"
PHP 5.2.La Configuration De X
active les deux lignes suivantes dans le php.fichier de configuration ini. Par "Activer" je veux dire, supprimer fuite ; (point-virgule). Par ceux-ci, vous dés-commenter la ligne.
extension=php_pdo_pgsql.dll
extension=php_pgsql.dll
redémarrer WAMP
Test en ajoutant ceci dans votre index.151970920 php"
echo extension_loaded('pgsql') ? 'yes':'no';
(source: http://www.plaatsoft.nl/wamp-postgresql-integration / )
si nous installons Wamp server, nous aurons deux php.les fichiers ini. un dans C:\wamp\bin\php\php5.3.5 et un autre dans C:\wamp\bin\apache\Apache2.2.17\bin.
si nous exécutons un fichier php à partir du navigateur, alors php.fichier ini dans C:\wamp\bin\apache\Apache2.2.17\bin seront désignés. si nous exécutons un fichier php à partir de la ligne de commande, alors php.fichier ini dans C:\wamp\bin\php\php5.3.5 seront désignés.
quels que soient les changements que j'ai faits activer / désactiver la dll dans les extensions PHP->PHP,toutes les modifications seront sauvegardées dans C:\wamp\bin\apache\Apache2.2.17\bin\php.fichier ini. mais C:\wamp\bin\php\php5.3.5\php.le fichier ini reste inchangé.
pour mon problème, j'ai fait les changements suivants
uncommented, extension=php_pdo_pgsql.dll,
uncommented, extension=php_pgsql.dll,
uncommented, extension_dir = "c:/wamp/bin/php/php5.3.5/ext/",
in C:\wamp\bin\php\php5.3.5\php.fichier ini. Maintenant son travail de bon. :)
dans mon cas avec Apache / 2.4.10 La Version de PHP 5.4.32 PostgeSQL 9.3 J'ai ajouté libpq.dll vers Apache httpd.conf du catalogue PHP parce Qu'Apache a refusé de commencer avec libpq.dll de PostgreSQL 9.3