У меня есть старый общий план хостинга, и я перемещаю сайт на новый план хостинга 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
Назовите любые звонки о том, почему это происходит? Я не знаком с грушей, поэтому я понял, что это здесь, прежде чем я потрачу много часов, пытаясь понять это.
edit: И если я раскомментирую эти строки, остальная часть страницы, похоже, работает (возможно, большинство из них проверяет ATM). Интересно, может ли это быть устаревшим методом?
Моя проблема заключалась в том, что мой файл database.INI, который загружал DataObject, не знал, какую БД использовать (он был установлен неправильно). Поэтому любое место в коде, зависящее от экземпляра DataObject, потерпит неудачу. Вот код, который может дать вам лучшее сообщение об ошибке (в отличие от вызова метода, который не существует и получения ошибки php):
$userobject = DB_DataObject::factory($tablename);
if (PEAR::isError($userobject))
{
echo $userobject->message;
}
Ну PEAR - это просто программа для простой установки модулей PHP из своего репозитория, поэтому вам нужно убедиться, что у вас есть или установить PEAR на новом сервере. Затем используйте PEAR для установки отсутствующего модуля: DB_DataObject
https://pear.php.net/package/DB_DataObject/redirected
Как только вы установите это, вы можете обнаружить, что вам нужны дополнительные пакеты и модули для PHP, так как код остановится, когда достигнет Fatal Error. После строки 11 у вас может быть больше фатальных ошибок.
При переходе на новый провайдер для PHP вы всегда хотите убедиться, что у вас есть список модулей, конфигураций и сторонних программ (например, MySQL или Redis), чтобы вы могли убедиться, что новый поставщик соответствует вашим требованиям (или дает вам доступ чтобы установить то, что вам нужно).