我有一个旧的共享托管计划,我正在将网站移动到新的VPS托管计划。它是用PHP编写的。
网站已成功移动,但当我尝试访问某个网页时出现此错误:
Fatal error: Call to undefined method DB_DataObject_Error::getDatabaseConnection() in /var/www/mysite.com/public_html/ss/index.php on line 11
响起为什么会发生这种情况?我对梨不太熟悉,所以在我花了很多时间试图弄清楚这个之前,想到了这个帖子。
编辑:如果我取消注释这些行,页面的其余部分似乎工作(无法测试其中的大部分ATM)...我想知道这是否是一个弃用的方法?
答案 0 :(得分:0)
Well PEAR只是一个从其存储库轻松安装PHP模块的程序,因此您需要确保在新服务器上安装或安装PEAR。然后使用PEAR安装缺少的模块: DB_DataObject
https://pear.php.net/package/DB_DataObject/redirected
安装完成后,您可能会发现需要PHP的其他软件包和模块,因为代码会在达到致命错误时停止。第11行后可能会有更多致命错误。
当转移到PHP的新提供程序时,您总是希望确保拥有模块,配置和第三方程序(如MySQL或Redis)的列表,以便确保新提供程序满足您的要求(或让您可以安装所需的东西。
答案 1 :(得分:0)
我的问题是DataObject加载的我的database.INI文件不知道要使用什么DB(设置错误)。因此,代码中任何依赖于DataObject实例的位置都会失败。这里的代码可以为您提供更好的错误消息(与调用不存在的方法并获取php错误相反):
$userobject = DB_DataObject::factory($tablename);
if (PEAR::isError($userobject))
{
echo $userobject->message;
}