Подключение к базе данных .FDB с помощью PHP

#php #wamp #firebird

#php #wamp #firebird

Вопрос:

Это моя конфигурация:

  • Windows 7 64 бит
  • 64-разрядный сервер WAMP 2.2 с PHP 5.4.3 (загружается с официального сайта).
  • Firebird 1.5.6 для управления базой данных (мне нужна эта версия, потому что более новые версии не открывают мои базы данных). Эта программа имеет только 32-разрядную версию (загружается с официального сайта).

Вот код для подключения к базе данных FDB. Но когда я пытаюсь выполнить код, я получаю сообщение об ошибке: «Фатальная ошибка: вызов неопределенной функции ibase_connect() в …»

Я пытаюсь:

  • Активируйте php_interbase.dll расширение (WAMP-> PHP-> Расширения PHP->php_interbase.dll ).
  • Добавьте переменную среды в Windows в папку PHP.ini.
  • Добавьте переменную среды в Windows в папку Firebird.
  • Используйте Firebird 2.5 64 бит.
  • Отредактируйте файл php.ini, удалив точку с запятой в строке ;extension=php_interbase.dll .
  • Выполните следующие действия.

И все работает. Я получаю ту же ошибку. После каждого совета, который я пытаюсь выполнить, очевидно, я перезапускаю WAMP.

Примечание: когда я выполняю (на странице PHP) extension_loaded («interbase»), я всегда получаю false . Когда расширение загружено и когда оно не загружено. Я думаю, что это проблема, но как я могу ее решить?

Спасибо!

Комментарии:

1. Если вы хотите, чтобы более новая версия Firebird открывала вашу базу данных, вам необходимо сделать резервную копию в Firebird 1.5.6 и восстановить ее с помощью новой версии Firebird. Технически Firebird должен иметь возможность открывать базы данных более старых версий (хотя в более старых версиях могут быть проблемы с 32-разрядной <> 64-разрядной), но резервное копирование и восстановление обеспечат обновление базы данных до более новой структуры на диске.

Ответ №1:

Взглянув на загрузки SourceForge для firebird, я вижу, что единственная загрузка версии 1.5.6 — это 32-битная компиляция.

Это не будет выполняться на 64-битном сервере WAMP, поскольку это означает, что Apache / PHP extensions / MySQL были скомпилированы с помощью 64-битного компилятора.

Если вам нужно запустить эту версию firebird, вам нужно будет загрузить 32-битный сервер WampServer, потому что 32-битный Firebird не будет взаимодействовать с 64-битным расширением firebird PHP.

Нет никакой реальной выгоды от запуска 64-битного сервера WampServer, т.Е. Apache / PHP / MySQL, это действительно только для гиков. Фактически 64-битный PHP все еще описывается как экспериментальный на веб-сайте PHP, поскольку он еще не был полностью перенесен на 64-битный.

Комментарии:

1. Технически это должно работать, если установлена 64-разрядная клиентская библиотека и указан путь к библиотеке, а соединение осуществляется через TCP / IP (а не прямое / собственное соединение).