За последние 24 часа нас посетили 17735 программистов и 1280 роботов. Сейчас ищут 1440 программистов ...

DB Error: extension not found

Тема в разделе "PHP и базы данных", создана пользователем KA3AKOB C.A., 19 окт 2006.

  1. KA3AKOB C.A.

    KA3AKOB C.A. Активный пользователь

    С нами с:
    19 окт 2006
    Сообщения:
    3
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Уважаемые все!
    Прошу помощи. Я новичок в PHP, но сделать надо как всегда срочно.
    На моём компьютере установлены Windows XP, Apache и Firebird/Interbase. В книжке Криса Ньюмана описано, как подключаться из PHP-скрипта к любой базе данных. Мне надо к Interbase. PEAR установил:

    pear.bat install DB

    пробую подключиться к базе в режиме и командной строки или запросом из адресной строки Internet Explorera
    php -f sayib.php
    http://127.0.0.1/Outlook/sayib.php
    Сам скрипт:
    <?php
    include "db.php";
    $dsn = "ibase://SYSDBA:masterkey@/./outlook";
    $db=DB::connect($dsn);
    if (DB::isError($db)) {
    echo $db->getMessage();
    exit;
    };
    ?>

    Получаю ответ:
    DB Error: extension not found

    Что делать? О каком расширении речь? Interbase? Так я в system32 записал файл gds32.dll. PEAR? Так я его установил с помощью go-pear.bat.
     
  2. Anonymous

    Anonymous Guest

    PEAR::DB - лишь программная оболочка для унификации подключения к базам - на самом деле, используются всё те же extensions из PHP - вам нужно подключить тот, который отвечает за работу FireBird(возможно, что PDO драйвер, не уверен). Я думаю, вам стоит посмотреть документацию к PEAR:DB
     
  3. KA3AKOB C.A.

    KA3AKOB C.A. Активный пользователь

    С нами с:
    19 окт 2006
    Сообщения:
    3
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Спасибо за ответ. Смотрю PDO и прочую документацию.
     
  4. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    в php.ini нужно раскомментировать строку:
    Код (Text):
    1. extension=php_interbase.dll
    и, если будете использовать PDO, добавить:
    Код (Text):
    1. extension=php_pdo_firebird.dll
    естественно, перед этим проверить наличие этих самых библиотек в папке расширений php. если нет - добавить или скачать полный дистрибутив php (хотя сомневаюсь, что этих библиотек там не будет). перезапустить апач
     
  5. KA3AKOB C.A.

    KA3AKOB C.A. Активный пользователь

    С нами с:
    19 окт 2006
    Сообщения:
    3
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Спасибо за советы. Раскомментировал в PHP.INI.
    Но:
    1)Использую командную строку, поэтому перезапуск Apacha необязателен. Или обязателен?
    2) Теперь другая ошибка:
    PHP Fatal error: Call to a member function beginTransaction() on a non-object in C:\Program Files\Apache2\htdocs\Outlook\fbi.php on line 5

    Я так понимаю, что новый объект класса PDO не создался, не смотря на то, что никакая ошибка при этом не фиксируется, программа бежит дальше и при попытке запустить метод класса интерпретатор PHP.EXE высвечивает эту ошибку.
    А вообще, как отлаживать PHP скрипты?
     
  6. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    выводить переменные, массивы, прогонять функции... например как я делаю:
    http://www.php.ru/forum/viewtopic.php?t=1629&start=20