<?php
try {
$dbh = new PDO('pgsql:host=localhost;port=5432;dbname=###;user=###;password=##');
echo "PDO connection object created";
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
I get the error message "Could Not Load Driver"
You need to install the pgsql module for php. In debian/ubuntu is something like this:
sudo apt-get install php5-pgsql
Or if the package is installed, you need to enable de module in php.ini
extension=php_pgsql.dll (windows)
extension=php_pgsql.so (linux)
Greatings.
Try this:
Uncomment the following in php.ini by removing the ";"
;extension=php_pgsql.dll
Use the following code to connect to a postgresql database server:
pg_connect("host=localhost dbname=dbname user=username password=password")
or die("Can't connect to database".pg_last_error());
对于 debian/ubuntu 安装
sudo apt-get install php-pgsql
In Apache I edit the following configuration file: C:\xampp\php.ini
I make sure to have the following lines uncommented:
extension=php_pgsql.dll
extension=php_pdo_pgsql.dll
Finally restart Apache before attempting a new connection to the database engine.
Also, I leave my code that ensures that the connection is unique:
private static $pdo = null;
public static function provideDataBaseInstance() {
if (self::$pdo == null) {
$dsn = "pgsql:host=" . HOST .
";port=5432;dbname=" . DATABASE .
";user=" . POSTGRESQL_USER .
";password=" . POSTGRESQL_PASSWORD;
try {
self::$pdo = new PDO($dsn);
} catch (PDOException $exception) {
$msg = $exception->getMessage();
echo $msg .
". Do not forget to enable in the web server the database
manager for php and in the database instance authorize the
ip of the server instance if they not in the same
instance.";
}
}
return self::$pdo;
}
GL
我必须在 httpd.conf 中添加这一行(Windows):
LoadFile "C:/Program Files (x86)/PostgreSQL/8.3/bin/libpq.dll"
just install the database driver:
apt-get install php5-pgsql php5-mysql php5-sqlite ... and so on ...
and be happy!
I installed PHP on windows IIS using Windows Platform Installer (WPΙ). WPΙ creates a "PHP Manager" tool in "Internet Information Services (IIS) Manager" console. I am configuring PHP using this tool.
in http://php.net/manual/en/pdo.installation.php says:
PDO and all the major drivers ship with PHP as shared extensions, and simply need to be activated by editing the php.ini file: extension=php_pdo.dll
so i activated the extension using PHP Manager and now PDO works fine
PHP manager simple added the following two lines in my php.ini, you can add the lines by hand. Of course you must restart the web server.
[PHP_PDO_PGSQL]
extension=php_pdo_pgsql.dll
您需要安装 pdo_pgsql 包
I and many other shave spent way too long on this - this needs a massive improvement. After spending hours, I finally copied php_pgsql.dll from php's ext directory to Apache24's root directory (wherever you installed it) and finally Apache was able to get the php/pg modules and dlls loaded.
$dbh = new PDO('pgsql:host=localhost;port=5432;dbname=###;user=###;password=##');
For PDO type connection uncomment
extension=php_pdo_pgsql.dll
and comment with
;extension=php_pgsql.dll
$dbh = pg_connect("host=localhost dbname=### user=### password=####");
For pgconnect type connection comment
;extension=php_pdo_pgsql.dll
and uncomment
extension=php_pgsql.dll
Both the connections should work.
in my case there are 2 php.ini , I had to uncomment extension pdo_pgsql in both php.ini
both inside in wamp folder
Because some answers seem outdated, if you are working with xampp, go to the php
folder inside your xampp installation. In it open the php.ini
file and uncomment
extension=pdo_pgsql
extension=pdo_sqlite
Remove the ;
before these lines.
If you're using AppServ on Windows, then:
To Enable PHP to work with PostgreSQL in Apache
C:\AppServ\php7\php.ini
.;extension=pgsql
removing the ;
.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.