如何使php与postgresql协同工作?
我收到错误消息“无法加载驱动程序”您需要安装用于php的pgsql模块。 在debian/ubuntu中是这样的:如何使php与postgresql协同工作?,php,windows,postgresql,pdo,Php,Windows,Postgresql,Pdo,我收到错误消息“无法加载驱动程序”您需要安装用于php的pgsql模块。 在debian/ubuntu中是这样的: <?php try { $dbh = new PDO('pgsql:host=localhost;port=5432;dbname=###;user=###;password=##'); echo "PDO connection object created"; } catch(PDOException $e) { echo $e->getMe
<?php
try {
$dbh = new PDO('pgsql:host=localhost;port=5432;dbname=###;user=###;password=##');
echo "PDO connection object created";
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
或者,如果安装了该包,则需要在php.ini中启用de模块
sudo apt-get install php5-pgsql
Greatings.试试这个:
通过删除“;”取消php.ini中的以下注释
使用以下代码连接到postgresql数据库服务器:
;extension=php_pgsql.dll
只需安装数据库驱动程序: apt get install php5 pgsql php5 mysql php5 sqlite。。。等等
祝你快乐 我使用windows平台安装程序(WPⅧ)在windows IIS上安装了PHP。WPⅧ在“Internet信息服务(IIS)管理器”控制台中创建“PHP管理器”工具。我正在使用这个工具配置PHP 他说: PDO和所有主要驱动程序随PHP一起作为共享扩展提供,只需通过编辑PHP.ini文件激活即可: extension=php_pdo.dll 因此,我使用PHP管理器激活了扩展,现在PDO工作正常 PHP manager simple在my PHP.ini中添加了以下两行,您可以手动添加这些行。当然,您必须重新启动web服务器
[PHP_PDO_PGSQL]
extension=PHP_PDO_PGSQL.dll我必须在httpd.conf中添加这一行(Windows):
我和许多其他剃须刀花了太长时间在这上面-这需要一个巨大的改进。花了几个小时后,我终于将php_pgsql.dll从php的ext目录复制到Apache24的根目录(无论安装在哪里),最后Apache能够加载php/pg模块和dll。
- 所以:Windows/Linux
- HTTP Web服务器:Apache
- 编程语言:PHP
C:\xampp\php.ini
我确保以下行未注释:
LoadFile "C:/Program Files (x86)/PostgreSQL/8.3/bin/libpq.dll"
在尝试与数据库引擎建立新连接之前,最后重新启动Apache。
此外,我保留了确保连接唯一的代码:
extension=php_pgsql.dll
extension=php_pdo_pgsql.dll
GL用于debian/ubuntu安装
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;
}
在我的例子中,有2个php.ini,我不得不在这两个php.ini中取消注释扩展pdo_pgsql
sudo apt-get install php-pgsql
对于PDO类型连接取消注释
extension=php_pdo_pgsql.dll
并用
;extension=php_pgsql.dll
$dbh = new PDO('pgsql:host=localhost;port=5432;dbname=###;user=###;password=##');
对于pgconnect类型连接注释
;extension=php_pdo_pgsql.dll
并取消注释
extension=php\u pgsql.dll
$dbh = new PDO('pgsql:host=localhost;port=5432;dbname=###;user=###;password=##');
这两个连接都应该工作。您好,您知道我将如何在windows中安装它吗?对不起,我还没有ubuntu,这要看情况而定。您正在使用wamp或类似的东西吗?首先尝试启用模块,编辑php.ini并搜索php_pgsql并删除;在队伍的开始。然后你需要重新加载你的服务。只需更新php7的这个旧线程,命令是:sudo apt install php7.0-pgsqlRunning php7.0-我必须将“extension=pgsql.so”添加到“php.ini”=“open database successfully”=:)我如何在windows上安装该软件包?也许
pecl install pdo_pgsql
。不确定debian linux衍生产品是否涉及此问题。安装新扩展后,可能会重复并重新加载PHP配置(重新加载apache/nginx等)。我仍然看到PHP致命错误:调用未定义的函数pg_connect()
,尽管我知道我已经取消了注释。想法?我确实是通过WPI安装了PHP,我在[ExtensionList]部分的末尾将extension=PHP\u pgsql.dll添加到C:\Program Files\PHP\v7.1\PHP.ini中就足够了,在那里可以找到httpd.dll。谢谢,如果我使用xammp,我会把它放在C:\xampp文件夹中吗?
$dbh = new PDO('pgsql:host=localhost;port=5432;dbname=###;user=###;password=##');
$dbh = pg_connect("host=localhost dbname=### user=### password=####");