Не удается подключиться к базе данных с PEAR php - PullRequest
1 голос
/ 17 сентября 2010

У меня небольшие проблемы с подключением к базе данных с PEAR на моей учетной записи хостинга GoDaddy.Я могу подключиться к своей базе данных с помощью стандартного mysql_connect.

Я скачал пакет БД с: http://pear.php.net/package/DB

Сначала я включил пакет (который работает):

include 'libs/pear/db/DB.php';

Затем я соединяюсь с:

$dsn = array(
    'phptype'  => "mysql",
    'hostspec' => $hostname,
    'database' =>  $dbname,
    'username' => $username,
    'password' => $password
);

$conn = DB::connect($dsn);

if (DB::isError ($conn))
     die ("Cannot connect: " . $conn->getMessage () . "\n");

Однако, это не работает.Фактически, если я помещу матрицу между $ conn = DB :: connect ($ dsn);и если (DB :: isError ($ conn)), это не показывает.Это как сценарий заканчивается на DB :: connect.

Я пытался включить ошибки с помощью:

ini_set('display_errors',1);
error_reporting(E_ALL|E_STRICT);

И я получаю:

Strict Standards: Non-static method DB::connect() should not be called statically in /path/t.php on line 27

Strict Standards: Non-static method DB::parseDSN() should not be called statically in /path/DB.php on line 520

Какие нет?t фатальные ошибки, поэтому он не должен вызывать смерть сценария ??

Я не могу попасть в журналы ошибок, так как веб-интерфейс GoDaddys просто отправляет меня на не найденную страницу.пакеты?Пожалуйста, порекомендуйте!Спасибо.

Ответы [ 4 ]

1 голос
/ 27 сентября 2013

отключить error_reporting = E_ALL | E_STRICT в вашем php ini файле

1 голос
/ 17 сентября 2010

DB устарела и выдает довольно много предупреждений при работе в строгом режиме при стандартной современной установке PHP.Впрочем, как и его преемник, MDB2.Предупреждения не являются фатальными, они просто указывают на то, что "метод" :: connect () настроен неправильно.

Это все равно будет работать, просто игнорируйте предупреждения.Но подумайте о том, чтобы перейти на что-то более современное, например PDO.

1 голос
/ 17 сентября 2010

PEAR :: DB был заменен MDB2 и не обновлялся с 2007 года. отчет об ошибках о сообщениях об ошибках, с которыми вы столкнулись, был подан, но никогда не разрешался.

Возможно, вы захотите попробовать вместо этого PDO .

0 голосов
/ 14 февраля 2012

У меня тоже была эта проблема. Что происходит, так это то, что PEAR DB приспособлен для работы с синтаксисом класса PHP 4.X, тогда как GoDaddy, очевидно, имеет установленный PHP 5.X - и это означает, что вы получаете эти ошибки. Хотя они не помечены как «фатальные», они ведут себя как фатальные ошибки - методы просто не вызываются.

Если у вас есть доступ к источнику PEAR, у вас нет другого выбора, кроме как просмотреть каждую функцию, которая появляется в журналах, одну за другой, и добавить ключевое слово «static» перед объявлением функции. Это боль, но это единственный вариант. Я только что сделал это сегодня с успехом - у меня есть очень старое приложение для обслуживания, которое все еще требует PEAR DB для работы, и последние автоматические обновления PHP (в настоящее время PHP 5.3.X) нарушили подключение к базе данных. Перенос всего приложения для использования MDB2 (рекомендуемый вариант) не был вариантом, поэтому добавление дюжины или двух «статических» ключевых слов помогло мне.

Но если вы начинаете проект с нуля и у вас нет устаревшего кода для обслуживания, я определенно рекомендую вам отказаться от БД и перейти на MDB2.

...