Phppgadmin,未找到对象



我正在尝试在phpPgAdmin中列出我的本地主机数据库,但它说没有找到对象 phppgadmin GUI

我已经配置了conf/config.inc

$conf['servers'][0]['desc'] = 'PostgreSQL'
$conf['servers'][0]['host'] = 'localhost';
$conf['servers'][0]['port'] = 5432;
$conf['owned_only'] = false;

请帮忙,我已经尝试过Postgresql版本9.2,9.5,10.3(phppgadmin不支持?

问题解释

我看到了问题!此错误消息是 phpPgAdmin 代码中的一个错误,该代码显然具有在 PHP 7.x 发布之前编写的旧代码。

如果您最近下载了包含所有最新版本的PHP,PostGreSQL和phpPgAdmin的技术堆栈,则会出现phpPgAdmin中的错误。例如。。。今天(2019年2月(的最新版本是:

  • PHP 7.3.1
  • PostGreSQL 版本 11
  • phpPgAdmin 5.6 (2018年11月12日( <= 这不适用于 PHP 7.x,但我们希望它与它一起工作,我们可以让它使用它!

PHP.net 在其构造函数和析构函数页面中解释了该问题:

警告 旧样式构造函数在 PHP 7.0 中已弃用,并且将 在将来的版本中删除。您应该始终__construct在 新代码。

他们的例子在该页面的这一部分中:

示例 #2 命名空间类中的构造函数

<?php
namespace Foo;
class Bar {
public function Bar() { <- This is an older style of creating a constructor.
For PHP 7.x, it should be changed to "__construct" instead of "Bar".
// treated as constructor in PHP 5.3.0-5.3.2
// treated as regular method as of PHP 5.3.3
}
}
?>

现在我们知道问题是什么,这里是如何解决它。

溶液

在 Web 服务器上查找/phpPgAdmin/文件夹。您应该在/classes/子文件夹中找到以下文件:

  • ArrayRecordSet.php <- 将function ArrayRecordSet替换为function __construct
  • class.select.php <- 将function XHtmlSimpleElement替换为function __construct
  • Gui.php <- 将function GUI替换为function __construct
  • 杂项.php <- 将function Misc()替换为function __construct
  • 插件.php <-已经有function __construct
  • 插件管理器.php <-已经有function __construct

编辑这些文件并将任何构造函数名称(显示为重复的类名(更改为__construct

当您在浏览器中保存这些文件并重新加载phpPgAdmin时,您将看到"未找到对象"消息将消失。然后,它将显示服务器名称。

瞧!最新版本的phpPgAdmin 5.6适用于最新版本的PHP 7.3.1和最新版本的PostGreSQL 11!

如果您想检查左侧树的XML内容,只需将其附加到您的网站,因为这是URL的其余部分,它正在使用:/phppgadmin/servers.php?action=tree。这将有助于使调试phpPgAdmin代码更容易。

还可以删除action=tree查询字符串参数。或者在phpMyAdmin代码中搜索它。

错误报告

我将看到有关提交phpPgAdmin错误报告以及指向此页面的链接的信息。希望有人会在phpPgAdmin代码库中修复此错误。

使用最新版本的phpPgAdmin,PHP和PostGreSQL玩得开心!

相关内容

  • 没有找到相关文章

最新更新