Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Oracle 8.0.6 mit PHP 5.3.0 [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Oracle 8.0.6 mit PHP 5.3.0


 
eizdealer
09-02-2010, 01:53 
 
Hallo zusammen,

mittlerweile bin ich ziemlich verzweifelt! Fuer ein Projekt im Fachpraktikum muss ich eine Oracle Datenbank mit PHP verwenden. Die letzten Monate habe ich am Testserver gearbeitet mit der Oracle Version 10g. Nun, beim Umstieg auf das richtige System habe ich festgestellt, dass es sich um eine Oracle Datenbank der Version 8 handelt - es wurde schlicht vergessen, mir das mitzuteilen! Ist aber ein anderes Thema.

Seis drum, ich habe jetzt seit einer geschlagenen Woche probiert, die Verbindung zum Laufen zu kriegen, bin jeglichen Google Eintraegen gefolgt, habe hunderte von DLLs probiert und bin nun voellig am Ende mit meinem Latein. Hier mal wie weit ich jeweils gekommen bin:

OCI: Es scheint, als wuerden sich Oracle 8 und PHP 5.3 beissen. Wenn ich PHP mit der entsprechenden DLL starte kommt die Fehlermeldung: "The procedure entry point OCIStmtPrepare2 could not be located in the dynamic link library OCI.dll". Es scheint also, als wuerde die php_oci8.dll, die die OCI Verbindung zur Verfuegung stellt, eine Prozedur aufrufen, die in der Oracle DLL (noch) nicht vorhanden ist.

ODBC: Ich habe es nicht geschafft, einen Oracle8 ODBC Treiber zu installieren. Ich schaetze mal das ist fast nicht moeglich, da es sich bei dem System um Win Server 2003 handelt und der Treiber vermutlich ueber zehn Jahre alt ist.

Wie gesagt, ich bin voellig am Ende und weiss nicht mehr was ich machen soll. Das ganze Projekt haengt von der Verbindung ab. (Dass es sowieso voelliger Schwachsinn ist mit einem solchen alten System zu arbeiten und es auch nicht mein Fehler ist, dass mir niemand von der anderen Version erzaehlt hat ist klar... aber so sind die Rahmenbedingungen.) Ich bin dankbar fuer jeden Hinweis, der helfen koennte, die Verbindung aufzubauen!!

Danke schonmal!

P.S. Die Daten in eine andere Datenbank zu kopieren laesst der Systemadmin aus Sicherheitsgruenden nicht zu.

 
AmicaNoctis
09-02-2010, 02:06 
 
Hallo,

kannst du eventuell eine ältere PHP-Version verwenden? Ansonsten hab ich das hier gefunden, weiß aber nicht, ob du das schon gelesen hast: OTN Discussion Forums : procedure entry point ... (http://forums.oracle.com/forums/thread.jspa?threadID=428459)

Die sagen dort, dass du eventuell deine %PATH%-Variable ändern musst.

Gruß,

Amica

 
eizdealer
09-02-2010, 02:17 
 
Danke fuer die schnelle Antwort!
Die Path Variable ist auf jeden Fall richtig gesetzt und ich kann damit lenken, welche DLL geladen werden soll. Das ist also nicht das Problem.
Auf die Zend DLL wird oefter mal verwiesen, allerdings ist der Link down und ich habe sie merkwuerdigerweise auch nirgendwo anders im Netz gefunden.
An eine aeltere PHP Version habe ich auch schon gedacht, wollte ich aber vermeiden. Werde es aber trotzdem mal probieren.

 
AmicaNoctis
09-02-2010, 02:27 
 
Also alt ist der ODBC-Treiber (http://www.oracle.com/technology/software/products/rdbodbc/index.html) überhaupt nicht - gerade mal zwei Monate. Der läuft auch auf Win 2003 und sollte auch für alle Oracle-Versionen gelten, da in den System Requirements keinerlei Angaben über die unterstützten Versionen gemacht werden.

 
eizdealer
09-02-2010, 02:41 
 
Nochmal danke! Habe den Treiber gleich ausprobiert, er laesst sich einwandfrei installieren, aber beim Verbindungsversuch kommt folgende Fehlermeldung:

FAILED: Service Connection test
rc=-1
SQLState=08S01
[Oracle][ODBC][Rdb] Connect ret -1 Err#10061 WSAECONNREFUSED Connection refused

Eine kurze Recherche im Internet hat keine Ergebnisse dazu geliefert. Dazu muss ich aber auch sagen, dass hier einiges geblockt ist (China...)

 
AmicaNoctis
09-02-2010, 03:10 
 
Hast du die ODBC-Verbindung richtig konfiguriert? Mit Zugangsdaten u. s. w?

 
eizdealer
09-02-2010, 03:29 
 
Ja, die Zugangsdaten sind sicher richtig. Theoretisch muesste ich ja so auch auf den Version 10 Server zugreifen koennen - das klappt auch nicht. Im uebrigen kriege ich die selbe Fehlermeldung wenn ich eine beliebige andere IP eingebe...
Muss denn bei der DB speziell angegeben werden, dass auch ODBC Verbindungen zugelassen sind? Oder regelt der Treiber das?
Was bedeutet eigentlich der Zusatz RDB im Treibernamen?

Zur anderen PHP Version: Habe nun ein paar Versionen ausprobiert. Ich glaube nicht, dass das eine wirkliche Alternative ist: Weder Oracle noch die andere Datenbank funktionieren hier und die Scripte spucken jede Menge Fehlermeldungen aus.

:(

 
AmicaNoctis
09-02-2010, 04:23 
 
Hast du es als Benutzer-DSN oder System-DSN angelegt? Wie sieht dessen Konfiguration aus? Wie sieht dein Connection-String aus?

Ohne diese Infos kommen wir nicht weiter. Konkrete Passwörter interessieren dabei natürlich nicht, aber der ganze Rest. Der Fehler sagt, dass die Verbindung abgewiesen wird, was auf ein falsches Login schließen lässt.

 
eizdealer
09-02-2010, 05:42 
 
Sorry, haette gleich mehr schreiben sollen. Ich habs sowohl mit User DSN als auch System DSN probiert.
Das "Connection refused" ist meiner Meinung nach irrefuehrend - wie gesagt, bei einer beliebigen anderen IP kommt die gleiche Fehlermeldung. Ich schaetze eher, dass er garnicht erst zum Server verbinden kann aus welchen Gruenden auch immer.
Habe auch schon mit allen moeglichen Einstellungen rumgespielt, bringt alles nix.
Hier ein Screenshot zu den Einstellungen:

http://www.eizdealer.de/odbc.gif

 
AmicaNoctis
09-02-2010, 05:46 
 
Mh, dann weiß ich auch nicht weiter. :(

Trotzdem noch viel Erfolg!

晚安。

Amica

 
rossixx
09-02-2010, 17:00 
 
hast du schon mal versucht mit was anderem den server zu connecten??? z.b. über eine andere db meinetwegen auch mit access ???

das andere IPs den connect ablehnen ist nur logisch, da wird kein oracle drauf laufen.

vielleicht mal checken, ob überhaupt eine connect zum server möglich ist, was sagt der admin ???

 
Kistler28
10-02-2010, 14:46 
 
Du schreibst nur das es Win Server 2003 Server ist aber nicht ob es eine 32 Bit oder 64 Bit ist

Bei der 64 Bit gibt es eine Besonnenheit wen du ein 32 Bit Treiber verwandtest dann musst du ihn auch die 32Bit-ODBC-Konsole verwarnten
die musst manuell aufrufen

Dazu benutzen Sie folgenden Aufruf im Ausführen Dialog von Windows:
c:\windows\SysWOW64\odbcad32.exe

Dort können dann 32Bit-DSN mit Hilfe der 32Bit-ODBC-Treiber angelegt werden.

ich wurde es nicht über ODBC machen sondern mit pdo da kann man fast alle Datenbanken ansprechen PHP: Oracle (PDO) - Manual (http://php.net/manual/de/ref.pdo-oci.php)

 
AmicaNoctis
10-02-2010, 14:49 
 
ich wurde es nicht über ODBC machen sondern mit pdo da kann man fast alle Datenbanken ansprechen PHP: Oracle (PDO) - Manual (http://php.net/manual/de/ref.pdo-oci.php)

Prinzipiell bin ich auch für PDO, aber nicht in diesem Fall:

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

 
eizdealer
14-02-2010, 11:42 
 
Hallo,

nur der Vollständigkeit halber: Ich hab es leider nicht mehr geschafft, die Verbindung zum Laufen zu kriegen. Die Datenbank wird in wenigen Monaten sowieso auf Version 10g umgestellt und bis dahin wird das Programm im "Testmodus" laufen.

Trotzdem danke für eure Mühen!

Daniel

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:08 Uhr.