Fatal error: Call to undefined function pg_connect
Solution 1
Apache 2.2.X configuration
Add the next line to the Apache 2.2.x httpd.conf configuration:
LoadFile "C:/Program Files/PostgreSQL/{version}/bin/libpq.dll"
Above line must be entered before the next line.
LoadModule php5_module "c:/wamp/bin/php/php5.2.11/php5apache2_2.dll"
PHP 5.2.X Configuration
Enable the following two lines in the php.ini configuration file. By 'Enable' i mean, remove trailing ; (semicolon). By these, you un-comment the line.
extension=php_pdo_pgsql.dll
extension=php_pgsql.dll
Restart WAMP
Test by adding this in your index.php
echo extension_loaded('pgsql') ? 'yes':'no';
(source: http://www.plaatsoft.nl/wamp-postgresql-integration/)
Solution 2
if we install WAMP server, we will get two php.ini files. one in C:\wamp\bin\php\php5.3.5 and another in C:\wamp\bin\apache\Apache2.2.17\bin.
if we execute a php file from browser, then php.ini file in C:\wamp\bin\apache\Apache2.2.17\bin will be referred. if we execute a php file from command line, then php.ini file in C:\wamp\bin\php\php5.3.5 will be referred.
what ever the changes i made enable/disable the dll in PHP->PHP extensions,all the changes will be saved in C:\wamp\bin\apache\Apache2.2.17\bin\php.ini file. but C:\wamp\bin\php\php5.3.5\php.ini file remains unchanged.
for my problem, i made the following changes
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.ini file. Now its working good. :)
Related videos on Youtube
Shashidhar Gr
Updated on November 10, 2020Comments
-
Shashidhar Gr over 3 years
I am using Windows 7, php 5.3.5 and WAMP server. I have two php files: trigger.php and background.php.
I want to run background.php as a background process. I have to call this file from trigger.php. To accomplish this I used below method. I included following code in trigger.php to make background.php to process in background.$handle = popen('start /b C:\wamp\bin\php\php5.3.5\php.exe C:\wamp\www\email3.php','r');
in background.php I have the follwing code to connect to database.
$conn_string = "host=localhost port=5432 dbname=tagbase user=postgres password=postgres";
now, on parsing this line am getting the follwing error :
Fatal error: Call to undefined function pg_connect() in C:\wamp\www\background.php on line 3 Call Stack: 0.0002 322792 1. {main}() C:\wamp\www\background.php:0
By searching in in the internet I found some solutions, and made changes as recommended below in php.ini,
uncommented, extension=php_pdo_pgsql.dll, uncommented, extension=php_pgsql.dll, uncommented, extension_dir = "c:/wamp/bin/php/php5.3.5/ext/",
also I do have php_pdo_pgsql.dll and php_pgsql.dll files in
c:/wamp/bin/php/php5.3.5/ext/
folder.Any suggestions are appreciated.
-
BattleBit about 11 yearsdo you enable this extensions in php.ini and restart server ?)
-
Shashidhar Gr about 11 yearsyes Mr.BattleBit. i enabled. but same error.
-
StefanNch almost 11 yearsin your apache config file put this Loadfile "C:\php\libpq.dll". Also check the documentation: php.net/manual/en/pgsql.setup.php
-
-
Shashidhar Gr about 11 yearshi Mr.jordi kroon, as you suggested when i included the following in httpd.conf file : lineLoadFile “C:/Program Files/PostgreSQL/9.1/bin/libpq.dll”, my server itself is not restarting properly. And LoadModule php5_module “c:/wamp/bin/php/php5.3.5/php5apache2_2.dll” already present in that configuration file.
-
Jordi Kroon about 11 yearsThe load file.. should point to the libpq.dll. Check the path.
-
Shashidhar Gr about 11 yearsi checked. path is correct. LoadFile "C:/Program Files/PostgreSQL/9.1/bin/libpq.dll",since in the path "Program Files" contains space ,am i suppose to escape that space.?
-
Jordi Kroon about 11 yearsNo, since there are quotes arround them. Check your apache error logs.
-
Shashidhar Gr about 11 yearsapache error logs also contains same error:PHP Fatal error: Call to undefined function pg_connect() in C:\wamp\www\background.php on line 3 PHP Stack trace: PHP 1. {main}() C:\wamp\www\background.php:0 [Wed Feb 13 14:50:53 2013] [error] [client 127.0.0.1] File does not exist: C:/wamp/www/favicon.ico
-
Vael Victus over 10 yearsThis did it for me, thanks. Some users may need to beware of the quotes Jordi has used in his answer; use these: " "
-
Jordi Kroon over 10 yearsThanks, quotes changed.
-
Milos about 9 yearsJust so that anyone else reading this doesn't mess up: on Windows you need forward slashes to make it work, so : LoadFile "C:\Program Files\PostgreSQL\{version}\bin\libpq.dll"