5

我在预览帖子中发布这个问题作为答案对我没有帮助。我正在尝试从我的本地计算机连接到位于远程服务器上的 DB postgres。我正在使用 Xampp 和 Netbeans IDE。

下面是我试图运行的代码:

        //attempt a connection
    $dbh = pg_connect("host=server_name port=5432 dbname=prototype1 user=leonidz password=****");
    if (!$dbh) {
    die("Error in connection: " . pg_last_error());
               }

这是错误消息:

Fatal error: Call to undefined function pg_connect() in C:\xampp\htdocs\PhpProject1\index.php on line 10

在 php.ini 中我未提交:extension=php_pgsql.dll 和 extension=php_pdo_pgsql.dll

我还映射了 extension_dir = "C:\xampp\php\ext\" 并在更改后重新启动了 Apache 服务器。

我不知道我还能做什么,请帮助。

4

4 回答 4

14

在 C:\xampp\php\php.ini 中,取消注释这些:

extension=php_pdo_pgsql.dll
extension=php_pgsql.dll

完成此操作后需要重新启动您的 xampp

于 2016-05-18T11:30:24.950 回答
5

在 php.ini 中你需要取消注释

扩展=php_pdo_pgsql.dll

扩展=php_pgsql.dll

扩展="pgsql.so"

于 2018-09-03T11:25:12.163 回答
4

转到 PHP dir oepn php.ini 文件,在那里你会找到这两行,只需从左侧删除分号,保存文件。接下来,停止 xampp 服务器并再次重新启动它会正常工作

;extension=pdo_pgsql
;extension=pgsql
于 2019-12-06T15:15:25.073 回答
0

Fatal error: Uncaught Error: Call to undefined function pg_connect() in C:\xampp\htdocs\postgresql_dbcon\connection1.php:5 Stack trace: #0 C:\xampp\htdocs\postgresql_dbcon\view.php(4): include() #1 {main} thrown in C:\xampp\htdocs\postgresql_dbcon\connection1.php on line 5

connection1.php 文件

<?php
    $db = pg_connect("host=localhost port=5432 dbname=db_test user=postgres password=123abc");//line 5
    if($db){
        echo "Connected\n";
    } else {
        echo "Error NotConnected\n";
    }
?>

查看.php 文件

<?php include "connection1.php";?>
<?php 
    $query = 'Select * FROM table2';
    $result = pg_query($db, $query);
    if (!$result) {
  echo "An error occurred.\n";
  exit;
}
while ($row = pg_fetch_row($result)) {
  $dbdata[]=$row;
}
$myJSON = json_encode($dbdata);
    echo $myJSON;
?>

如果您在 Windows 操作系统中使用 XAMPP,请转到安装 XAMPP 的目录。按照路径,即xampp/php/php.ini。在编辑器中打开php.ini文件并搜索";extension=pdo_mysql"并将其"extension=pdo_mysql"替换";extension=pdo_pgsql""extension=pdo_mysql". 然后保存文件并重新启动 XAMPP。

于 2020-07-22T06:22:50.853 回答