提问人:Aaron 提问时间:5/18/2012 最后编辑:laurentAaron 更新时间:6/23/2022 访问量:295092
如何使 php 与 postgresql 一起使用?
How do I enable php to work with postgresql?
问:
<?php
try {
$dbh = new PDO('pgsql:host=localhost;port=5432;dbname=###;user=###;password=##');
echo "PDO connection object created";
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
我收到错误消息“无法加载驱动程序”
答:
您需要不安装pdo_pgsql包
评论
pecl install pdo_pgsql
您需要安装用于 php 的 pgsql 模块。 在 debian/ubuntu 中是这样的:
sudo apt-get install php5-pgsql
或者如果包已安装,则需要在 php.ini 中启用 de 模块
extension=php_pgsql.dll (windows)
extension=php_pgsql.so (linux)
伟大。
评论
试试这个:
通过删除 “;” 取消在 php.ini 中注释以下内容
;extension=php_pgsql.dll
使用以下代码连接到 postgresql 数据库服务器:
pg_connect("host=localhost dbname=dbname user=username password=password")
or die("Can't connect to database".pg_last_error());
评论
PHP Fatal error: Call to undefined function pg_connect()
只需安装数据库驱动程序:
apt-get 安装 php5-pgsql php5-mysql php5-sqlite ...等等......
并快乐!
评论
我使用 Windows 平台安装程序 (WPΙ) 在 Windows IIS 上安装了 PHP。WPΙ 在“Internet Information Services (IIS) Manager”控制台中创建“PHP 管理器”工具。我正在使用此工具配置 PHP。
in http://php.net/manual/en/pdo.installation.php 说道:
PDO和所有主要驱动程序都作为共享扩展随PHP一起提供,只需通过编辑php.ini文件来激活: 分机=php_pdo.dll
所以我使用 PHP 管理器激活了扩展,现在 PDO 工作正常
PHP管理器在我的php.ini中简单地添加了以下两行,您可以手动添加这些行。当然,您必须重新启动 Web 服务器。
[PHP_PDO_PGSQL]
extension=php_pdo_pgsql.dll
评论
我必须在httpd.conf中添加这一行(Windows):
LoadFile "C:/Program Files (x86)/PostgreSQL/8.3/bin/libpq.dll"
评论
我和许多其他剃须人在这方面花了太长时间——这需要巨大的改进。花了几个小时后,我终于将php_pgsql.dll从 php 的 ext 目录复制到 Apache24 的根目录(无论您在哪里安装它),最后 Apache 能够加载 php/pg 模块和 dll。
评论
- SO:Windows/Linux
- HTTP Web 服务器:Apache
- 编程语言: PHP
使 PHP 能够在 Apache 中使用 PostgreSQL
在 Apache 中,我编辑以下配置文件:C:\xampp\php.ini
我确保取消注释以下行:
extension=php_pgsql.dll
extension=php_pdo_pgsql.dll
最后,在尝试与数据库引擎建立新连接之前,重新启动 Apache。
此外,我保留了确保连接唯一的代码:
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系列
对于 debian/ubuntu 安装
sudo apt-get install php-pgsql
就我而言,有 2 个 php.ini,我不得不取消注释两个 php 中的扩展名pdo_pgsql.ini
- 在 php 文件夹中
- 在 Apache 文件夹中
两者都在 wamp 文件夹中
$dbh = new PDO('pgsql:host=localhost;port=5432;dbname=###;user=###;password=##');
对于 PDO 类型连接取消注释
extension=php_pdo_pgsql.dll
并评论
;extension=php_pgsql.dll
$dbh = pg_connect("host=localhost dbname=### user=### password=####");
对于 pgconnect,键入连接注释
;extension=php_pdo_pgsql.dll
并取消注释
extension=php_pgsql.dll
两个连接都应该可以正常工作。
因为有些答案似乎已经过时了,所以如果您正在使用 xampp,请转到 xampp 安装中的文件夹。在其中打开文件并取消注释php
php.ini
extension=pdo_pgsql
extension=pdo_sqlite
删除这些行之前的。;
如果您在 Windows 上使用 AppServ,则:
使 PHP 能够在 Apache 中使用 PostgreSQL
- 转到。
C:\AppServ\php7\php.ini
- 取消注释此行:删除 .
;extension=pgsql
;
上一个:Java 逻辑运算符短路
下一个:Java长号过大错误?
评论