Php+firebird połączenie

0

Witam, tak jak w temacie mam problem z połączeniem w php z bazą firebirda

<?php

$host = 'localhost:/StypBD.fdb';

$dbh = ibase_connect($host, "SYSDBA", "masterkey", 'ISO8859_2');
$stmt = 'SELECT * FROM student';
$sth = ibase_query($dbh, $stmt);
while ($row = ibase_fetch_object($sth)) {
    echo $row->nazwisko, "\n";
}
ibase_free_result($sth);
ibase_close($dbh);
?>

Wyświetla mi się następujący komunikat błędu:
Fatal error: Call to undefined function ibase_connect() in C:\xampp\htdocs\pol.php on line 5

dodam iż w pliku php.ini
dodałem:

extension=php_interbase.dll
extension=php_pdo_firebird.dll

Jak widać wszystko robię za pomocą Xamppa proszę o jakie kolwiek wskazówki.

1

sprawdź czy rozszerzenia się załadowały w phpinfo()
sprawdź czy faktycznie posiadasz te rozszerzenia (z serwerem często mogą być dołączone wykomentowane linijki z rozszerzeniami, a samych plików rozszerzeń nie ma)
sprawdź też error logi

0

hmm tylko jak to bedzie napisane w phpinfo()?
mam taki dział jak PHP Variables ale tam nic nie widzę możesz powiedzieć gdzie dokładnie i jak ma byc?
z góry dziękuje
i co zrobić kiedy zmiany w pliku php.ini nie zostały uwzględnione?

a odp mi jeszcze czy w pliku z polączeniem musze mieć dołączony plik php.ini? typu
include_once("C:\xampp\php\php.ini");

1

a reszta mojego posta nie ma znaczenia i nie trzeba na niego odpisywać?

w phpinfo w tabelce po prostu bedziesz mial tabelkę z nagłówkiem o nazwie rozszerzenia, wystarczy ctrl+f i wyszukanie nazwy, jak nic się nie znajdzie to rozszerzenie na pewno się nie załadowało, przykład: http://i.imgur.com/N8F2dJa.png

edit:

i co zrobić kiedy zmiany w pliku php.ini nie zostały uwzględnione?

upewnić się, że edytujesz ten sam plik ini, który masz podany w konfiguracji. ty masz niby gotowca (xampp), więc php.ini powinieneś mieć na stałe w jednym miejscu, ale wszystkie poradniki o stawianiu środowiska www na ogół sugerują kopiowanie plików ini do C:\Windows i ogólnie komplikowanie życia. a paczek typu xampp nie polecam, bo jak tam coś nie działa, a bardzo często nie działa, to cholera wie dlaczego

0

wrzuciłem php.ini zaraz do C:\ i to mi zadziałało
ale dalej jest problem ponieważ wyświetla mi się:
Parse error: syntax error, unexpected 'and' (T_LOGICAL_AND) in C:\php.ini on line 217

linijki 210-230:

; Enable the PHP scripting language engine under Apache.
; http://php.net/engine
engine = On

; This directive determines whether or not PHP will recognize code between
; <? and ?> tags as PHP source which should be processed as such. It's been
; recommended for several years that you not use the short tag "short cut" and
; instead to use the full <?php and ?> tag combination. With the wide spread use
; of XML and use of these tags by other languages, the server can become easily
; confused and end up parsing the wrong code in the wrong context. But because
; this short cut has been a feature for such a long time, it's currently still
; supported for backwards compatibility, but we recommend you don't use them.
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
short_open_tag = Off
; XAMPP for Linux is currently old fashioned
;short_open_tag = On

; Allow ASP-style <% %> tags. 

co teraz by zrobić?

1

NIE
INKLUDUJ
PLIKOW
INI
DO
KODU
PHP
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Kod strony nie ma NIC wspólnego z konfiguracją samego serwera!!! Robiąc coś takiego będziesz miał całą konfigurację wypisaną na stronie, co nie jest ani pożądane, ani bezpieczne, ani w najmniejszy sposób nie jest logiczne.

0
 <?php


$host = 'C:\StypBD.fdb';

$dbh = ibase_connect($host, "SYSDBA", "masterkey", 'ISO8859_2');
$stmt = 'SELECT * FROM student';
$sth = ibase_query($dbh, $stmt);
while ($row = ibase_fetch_object($sth)) {
    echo $row->nazwisko, "\n";
}
ibase_free_result($sth);
ibase_close($dbh);

?>

dalej mam problem z tym połączeniem
Fatal error: Call to undefined function ibase_connect() in C:\xampp\htdocs\pol.php on line 6

nadal nie widzi chyba zmienionego pliku php.ini
miałby ktoś jakiś pomysł?
albo co zainstalować nie xampp nie wamp? tylko co?

1

Normalnie to co się składa na xampp i podobne - Apache2.2 [installer], PHP5.3 (czy który Ci pasuje) [zip, po installerze też trzeba dużo poprawiać], MySQL5 [installer]. Sam od podstaw wszystko konfigurujesz - to sam wiesz jak to działa. Jakiegoś tutoriala musisz poszukać na necie (ale nigdy nie udało mi się w sumie znaleźć 100% poprawnego tutoriala.. chyba sam napiszę jakiś).

W temacie:
A zajrzyj do Twojego httpd.conf i zobacz skąd ładuje się plik php.ini

0

Teraz mam takie błędy:

 
Warning: ibase_connect() [<a href='function.ibase-connect'>function.ibase-connect</a>]: unsupported on-disk structure for file C:\STYPBD.FDB; found 11, support 1 in C:\wamp\www\pol.php on line 5

Warning: ibase_query() [<a href='function.ibase-query'>function.ibase-query</a>]: invalid database handle (no active connection) in C:\wamp\www\pol.php on line 7

Warning: ibase_fetch_object() expects parameter 1 to be resource, boolean given in C:\wamp\www\pol.php on line 8

Warning: ibase_free_result() expects parameter 1 to be resource, boolean given in C:\wamp\www\pol.php on line 11

Warning: ibase_close() expects parameter 1 to be resource, boolean given in C:\wamp\www\pol.php on line 12

a kod php wygląda następująco:

<?php

$host = 'C:\StypBD.fdb';

$dbh = ibase_connect($host, "SYSDBA", "masterkey");
$stmt = 'SELECT * FROM student';
$sth = ibase_query($dbh, $stmt);
while ($row = ibase_fetch_object($sth)) {
    echo $row->nazwisko, "\n";
}
ibase_free_result($sth);
ibase_close($dbh);
?> 
1

Nie rozumiesz angielskiego?
Plik C:\StypBD.fdb nie jest w oczekiwanym formacie bazy danych.

Kod sobie przerób tak:

<?php
 
$host = 'C:\StypBD.fdb';
 
$dbh = @ibase_connect($host, "SYSDBA", "masterkey") or die('Nie można się połączyć z bazą: '.ibase_errmsg());
$stmt = 'SELECT * FROM student';
$sth = @ibase_query($dbh, $stmt) or die('Nie można wykonać zapytania: '..ibase_errmsg());
while ($row = ibase_fetch_object($sth)) {
    echo $row->nazwisko, "\n";
}
ibase_free_result($sth);
ibase_close($dbh);
?>

Ogólnie - obsługi błędów się naucz, a najlepiej skorzystaj z biblioteki PDO.

0

następujący problem
Nie można się połšczyć z bazš: unsupported on-disk structure for file C:\STYPBD.FDB; found 11, support 1

1

...............
Czytaj moje posty w całości

Nie rozumiesz angielskiego?
Plik C:\StypBD.fdb nie jest w oczekiwanym formacie bazy danych.

0

miałem go w formacie .gdb i nic, wiec jaki ma byc?

1

dla mnie wygląda, że ten format bazy danych ma wiele wersji i Twoja wersja jest niepoprawna. nie potrafię Ci dalej pomóc, mogę tylko zasugerować użycie PDO, które być może sobie poradzi z tą wersją.

PS. przycisk z taką "fajką" pod ocenami postów powinie być używany tylko RAZ. oznacza on zaakceptowanie odpowiedzi w temacie jako OSTATECZNIE ROZWIAZUJACEJ PROBLEM, wtedy na liscie postow widać ten symbol i nikt wiecej do tematu nie bedzie zagladal, bo jest rozwiązany przecież..

0

Przepraszam nie wiedziałem tego

Dziękuje za tyle pomocy ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1