Phppgadmin,未找到对象
Phppgadmin, No objects found
我试图在 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月)的最新版本是:
- PHP7.3.1
- PostGreSQL 版本 11
- phpPgAdmin 5.6(2018 年 11 月 12 日)<= 这不适用于 PHP 7.x,但我们希望它能与它一起工作,我们可以让它与它一起工作!
PHP.net explains the problem in their Constructors and Destructors 页数:
Warning Old style constructors are DEPRECATED in PHP 7.0, and will be
removed in a future version. You should always use __construct() in
new code.
他们的例子在那个页面的这个部分:
Example #2 Constructors in namespaced classes
<?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
}
}
?>
现在我们知道问题是什么,下面是解决方法。
解决方案
查看网络服务器上的 /phpPgAdmin/
文件夹。您应该在 /classes/
子文件夹中找到以下文件:
- ArrayRecordSet.php <- 将
function ArrayRecordSet
替换为 function __construct
- class.select.php <- 将
function XHtmlSimpleElement
替换为 function __construct
- Gui.php <- 将
function GUI
替换为 function __construct
- Misc.php <- 将
function Misc()
替换为 function __construct
- Plugin.php <- 已经有
function __construct
- PluginManager.php <- 已经有
function __construct
编辑这些文件并将任何构造函数名称(显示为重复 class 名称)更改为 __construct
.
当您保存这些文件并在浏览器中重新加载 phpPgAdmin 时,您会看到 "No objects found" 消息将消失。然后它将显示服务器名称。
瞧!最新版本的 phpPgAdmin 5.6 适用于最新版本的 PHP 7.3.1 & 最新版本的 PostGreSQL 11!
如果您想查看左侧树的 XML 内容,只需将其附加到您的网站,因为这是 URL 的其余部分,它正在使用:/phppgadmin/servers.php?action=tree
.这将有助于更轻松地调试 phpPgAdmin 代码。
您还可以删除 action=tree
查询字符串参数。或者在phpMyAdmin代码里面搜索。
错误报告
我会看看如何将 phpPgAdmin bug report 和 link 一起提交到此页面。希望有人会在 phpPgAdmin 代码库中修复此错误。
祝您使用最新版本的 phpPgAdmin、PHP 和 PostGreSQL 愉快!
我试图在 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月)的最新版本是:
- PHP7.3.1
- PostGreSQL 版本 11
- phpPgAdmin 5.6(2018 年 11 月 12 日)<= 这不适用于 PHP 7.x,但我们希望它能与它一起工作,我们可以让它与它一起工作!
PHP.net explains the problem in their Constructors and Destructors 页数:
Warning Old style constructors are DEPRECATED in PHP 7.0, and will be removed in a future version. You should always use __construct() in new code.
他们的例子在那个页面的这个部分:
Example #2 Constructors in namespaced classes
<?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
}
}
?>
现在我们知道问题是什么,下面是解决方法。
解决方案
查看网络服务器上的 /phpPgAdmin/
文件夹。您应该在 /classes/
子文件夹中找到以下文件:
- ArrayRecordSet.php <- 将
function ArrayRecordSet
替换为function __construct
- class.select.php <- 将
function XHtmlSimpleElement
替换为function __construct
- Gui.php <- 将
function GUI
替换为function __construct
- Misc.php <- 将
function Misc()
替换为function __construct
- Plugin.php <- 已经有
function __construct
- PluginManager.php <- 已经有
function __construct
编辑这些文件并将任何构造函数名称(显示为重复 class 名称)更改为 __construct
.
当您保存这些文件并在浏览器中重新加载 phpPgAdmin 时,您会看到 "No objects found" 消息将消失。然后它将显示服务器名称。
瞧!最新版本的 phpPgAdmin 5.6 适用于最新版本的 PHP 7.3.1 & 最新版本的 PostGreSQL 11!
如果您想查看左侧树的 XML 内容,只需将其附加到您的网站,因为这是 URL 的其余部分,它正在使用:/phppgadmin/servers.php?action=tree
.这将有助于更轻松地调试 phpPgAdmin 代码。
您还可以删除 action=tree
查询字符串参数。或者在phpMyAdmin代码里面搜索。
错误报告
我会看看如何将 phpPgAdmin bug report 和 link 一起提交到此页面。希望有人会在 phpPgAdmin 代码库中修复此错误。
祝您使用最新版本的 phpPgAdmin、PHP 和 PostGreSQL 愉快!