- Форум PHP программистов ► PHP практикум ► PHP для начинающих
- Call to undefined function ibase connect php
- Configuring PHP to Connect to the Firebird (Interbase) Database
- Performed the setup
- Call to undefined function ibase connect php
- Доступ к СУБД Firebird из PHP. Делаем отображение информации на планшет из корпоративной БД.
Форум PHP программистов ► PHP практикум ► PHP для начинающих
Профиль
Группа: Пользователь
Сообщений: 34
Пользователь №: 35763
На форуме:
Карма:
Помогите пожалуйста разобраться пытаюсь считать базу на локалке, firebird запущен, php на сервере. В php .ini разкомментировал следующие строки
extension= php _interbase.dll
extension= php _pdo.dll
extension= php _pdo_firebird.dll
но вот есть ли сами эти библиотеки на сервере не знаю даже в какой папке смотреть
ini_set(‘display_errors’, 1);
error_reporting(E_ALL);
phpinfo();
$database = ‘localhost:D:\\Андрей\\programs\\firebird\\bin\\2.fdb’;
$user = ‘SYSDBA’;
$password = ‘masterkey’;
$db = ibase_connect($database, $user, $password);
if ($db=true) echo «connect»;
else echo «no connect»;
$result = ibase_query(‘SELECT * FROM list_phones’);
print_r($result);
Вылазит ошибка
Fatal error: Call to undefined function ibase_connect() in /home/imediasun/data/www/pinokio .in.ua/application/controllers/f irebird. php on line 18
Что дальше как сделать чтобы все заработало?
Я так читал что нужно записать эти библиотеки и
include_path = как то менять надо, вообщем кто знает наверняка подскажите что делать чтобы подключится
Сообщений: 449
Пользователь №: 32172
На форуме:
Карма: 22
Сообщений: 449
Пользователь №: 32172
На форуме:
Карма: 22
Цитата (imediasun @ 19.08.2013 — 08:47) |
Помогите пожалуйста разобраться пытаюсь считать базу на локалке, firebird запущен, php на сервере. В php .ini разкомментировал следующие строки extension= php _interbase.dll extension= php _pdo.dll extension= php _pdo_firebird.dll |
Нужно закинуть в папку ext эти файлы.
Профиль
Группа: Пользователь
Сообщений: 34
Пользователь №: 35763
На форуме:
Карма:
а путь к папке должен быть где то в php .ini прописан?
и что еще за перемещение файлов fbclient.dll,gds32.dll , тоже читал про такое, от куда их брать и куда записывать?
Это сообщение отредактировал imediasun — 19.08.2013 — 13:31
Сообщений: 449
Пользователь №: 32172
На форуме:
Карма: 22
extension_dir — папка где все библиотеки ( php .ini)
вот в эту папку и кидаешь а файлы можно в инете отыскать или поставить денвер расширенный на базы данных и от туда взять.
Сообщений: 2120
Пользователь №: 36605
На форуме:
Карма: 115
apt-get install php5-pdo
apt-get install php5-inderbase
Профиль
Группа: Пользователь
Сообщений: 34
Пользователь №: 35763
На форуме:
Карма:
библиотеки мне уже прописали на сервере, вопрос теперь обстоит в том что как мне расположить на этом сервере базу данных, я просто переписал в корень сайта на сервере файл созданный ibexpertom и пітаюсь его прочитать из php
Я понимаю что не правильно, но как именно мне расположить базу данных на сервере не знаю мне настроили сервер который я арендую на Firebird.Мне что переписывать в какуюто папку весь firebird или как его установить на сервер
$database = '178.20.153.204:/www/pinokio.in.ua/2.fdb';
$user = 'SYSDBA';
$password = 'masterkey';
$db = ibase_connect($database, $user, $password);
if ($db=true) echo "connect";
else echo "no connect";
$result = ibase_query('SELECT * FROM list_phones');
print_r($result);
A PHP Error was encountered
Message: ibase_connect() [function.ibase-connect]: connection rejected by remote interface
Filename: controllers/firebird. php
Line Number: 18
connect
A PHP Error was encountered
Message: ibase_query(): no Firebird/InterBase link resource supplied
Filename: controllers/firebird. php
Это сообщение отредактировал imediasun — 19.08.2013 — 22:15
Call to undefined function ibase connect php
Помогите пожалуйста разобраться пытаюсь считать базу на локалке, firebird запущен, php на сервере. В php .ini разкомментировал следующие строки
extension= php _interbase.dll
extension= php _pdo.dll
extension= php _pdo_firebird.dll
но вот есть ли сами эти библиотеки на сервере не знаю даже в какой папке смотреть
ini_set(‘display_errors’, 1);
error_reporting(E_ALL);
phpinfo();
$database = ‘localhost:D:\\Андрей\\programs\\firebird\\bin\\2.fdb’;
$user = ‘SYSDBA’;
$password = ‘masterkey’;
$db = ibase_connect($database, $user, $password);
if ($db=true) echo «connect»;
else echo «no connect»;
$result = ibase_query(‘SELECT * FROM list_phones’);
print_r($result);
Вылазит ошибка
Fatal error: Call to undefined function ibase_connect() in /home/imediasun/data/www/pinokio .in.ua/application/controllers/f irebird. php on line 18
Что дальше как сделать чтобы все заработало?
Я так читал что нужно записать эти библиотеки и
include_path = как то менять надо, вообщем кто знает наверняка подскажите что делать чтобы подключится
Configuring PHP to Connect to the Firebird (Interbase) Database
After having several problems setting up a Windows PHP + Firebird environment, I decided to create this post to help other colleagues with the same problem and eliminate the error message once and for all:
Fatal error: Call to undefined function ibase_connect ()
Performed the setup
- Download the XAMPP 1.8.2 VC9 and extract the files to a local directory, preferably C: \ xampp
- Run the file setup_xamp.bat to set the variables
- Edit the file php.ini (C: \ xampp \ php) and look for php_interbase.dll. Uncomment this line by removing the “;” at the beginning of the line
- Download the Firebird 2.5.3 database and install on your computer
- Copy the php_interbase.dll file from your php \ ext directory to the C: \ Windows \ System32 directory.
- Copy the libeay32.dll and ssleay32.dll files from your php directory to the C: \ Windows \ System32 directory.
- Download of this file and extract the DLLs in the C: \ Windows and C: \ Windows \ System32 directories (or copy C: \ firebird \ bin \ fbclient.dll to the above directories and copy this file again, now named gds32.dll)
- Start Xampp Control (xampp-control.exe) and start the Apache service.
Ready, PHP + Apache + Firebird installed and integrated! Now just make PHP connect to the database:
Call to undefined function ibase connect php
Под виндами, php 4.3.0 не хочет съедать interbase библиотеку (php_interbase.dll), когда раскрываешь её в php.ini.
И при вызове функции ibase_connect() пишет об ошибке
PHP Fatal error: Call to undefined function: ibase_connect()
Путь к библиотекам указан (например gd2.dll работает без проблем)
Сама библиотека то же в наличии (проверенно).
С чем это может быть связано (кроме кривых рук =)? Может чего ещё в php.ini прописать?
Цитата |
---|
Note to Win32 Users: In order to enable this module on a Windows environment, you must copy gds32.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your windows machine. In case you installed the InterBase database server on the same machine PHP is running on, you will have this DLL already. Therefore you dont need to copy gds32.dll from the DLL folder. |
Попробовал сейчас у себя — если в системном каталоге типа system32 нет файла gds32.dll, то апач не может загрузить php_interbase.dll и ibase_connect() вылетает с указанной у тебя ошибкой.
Проверь наличие этого файла, если всё-таки нет — скопируй и рестартани апач.
следующая странная ситуация:
Interbase установил на ту же машину что и apache и в папке system32 появился файлик GDS32.DLL (349К), а вместе с php идёт gds32.dll (размером 338К). Пробовал манипулировать — запускал apache то с тем, то с другим, но функции interbase работать так и не хотят.
Файл php.ini конечно же находится в каталоге winnt?
мало-ли. =) В нете, на форумах, товарисчи искавшие ответ на такой вопрос, остлись без ответа. Вот и расписываю всю ситуацию, чтоб было проще найти ответ.
да, файл php.ini в каталоге winnt
[PHP Modules] bcmath calendar com ctype ftp gd mysql odbc overload pcre pdf session standard tokenizer wddx xml zlib [Zend Modules]
Значит библиотека с interbase не подгрузилась. Проверь правильность всех путей, раскомментируй extension=php_interbase.dll, проверь откуда читается файл php.ini. Может он ещё где у тебя лежит.
Цитата |
---|
Mr.Clumsy пишет: Значит библиотека с interbase не подгрузилась. Проверь правильность всех путей, раскомментируй extension=php_interbase.dll, проверь откуда читается файл php.ini. Может он ещё где у тебя лежит. |
вот и я о чем. но почему?
1)Пути проверил
2)php_interbase.dll раскоментировал (давно уж как)
3)как проверить откуда читает php.ini? Вроде как из директории winnt, ибо когда менял его содержимое, менялось поведение итерпретатора.
о файле gds32.dll — библиотека, кот позволяет связыватся с IB сервером (клиент IB).
Configuration File (php.ini) Path d:\php\php.ini
а я редактирую в директории d:\winnt\php.ini! Сервер на ней не я ставил, ктож знал, что php.ini будут кидать в директорию с php и php будет цеплять его вместо того, что в winnt.
облажался. аж стыдно и в то же время радостно
PS. спасибо Mr.Clumsy за его терпение =)
PSS. ни на одном форуме в рунете так и не нашли (или просто не опубликовали) ответа на этот вопрос. Так что я тоже молодец
Доступ к СУБД Firebird из PHP. Делаем отображение информации на планшет из корпоративной БД.
Конечно Firebird это очень нетипичная база данных для веба, но когда стоит задача дать людям возможность оперативно у себя на телефоне или планшете видеть информацию из корпоративной СУБД, которая как раз на Firebird, то написать несколько несложных php-скриптов и поставить локальный веб-сервер куда проще, чем создавать отдельное приложение под android и iOS.
Для того чтобы заставить php обращаться к Firebird или Interbase серверу в расширениях php (PHP Extensions) нам понадобится php_interbase модуль (в моем случае php_interbase.dll
Само же общение с сервером Firebird отличается от MySQL лишь особенностями языка запросов, а в php разница практически отсутствует. Тестовый файл работы с БД может выглядеть так:
$database = '127.0.0.1:TEST'; $user = 'SYSDBA'; $password = 'masterkey'; $db = ibase_connect($database, $user, $password); if ($db!=true) echo "no connect"; $result = ibase_query('select count(*) from "RDB$RELATIONS" where "RDB$SYSTEM_FLAG"=0'); $row = ibase_fetch_row($result); echo 'Пользовательских таблиц: '.$row[0];
В результате обращения к этому файлу в браузере мы увидим результат запроса, показывающий количество пользовательских таблиц в базе.
При этом важно чтобы и сам файл php и база данных была в одной кодировке, например оба в windows-1251. Но зачастую в вебе для страниц применяется кодировка UTF-8, в ней же сохраняются и php-файлы, в этом случае достаточным оказалось задать дополнительный параметр в строке подключения:
$db = ibase_connect($database, $user, $password, «UTF-8»);
После чего результат запросов стал отдаваться в UTF-8.
P.S. Но не все так просто оказалось в других случаях. При установке на windows 2008 и обращении к функциям работы с БД я стал получать:
Fatal error: Call to undefined function ibase_connect()
одновременно в Apache\log\errors.log стало появляться:
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\Program Files (x86)\\VertrigoServ\\php\\ext\\php_interbase.dll'
для решения этого нужно в system32 кинуть fbclient.dll