php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.07.2004, 09:56  
Gast
 
Beiträge: n/a
Standard Connect auf ORACLE 9i

Hallo,

ich bekomme keine Verbindung zur ORACLE 9i, ich hatte es zuerst mit den OCI Funktionen versucht aller dings bekam ich da keine Verbindung bzw. keine Fehlermeldung das es nicht geklappt hat (v$_sessions zeigt keine aktuelle Session an).

kann man direkt im PHP Code die Globalen Variablen für Oracle setzen?

Hat jemand vieleicht ein codesheet der eine connection zeigt..

benutz ORACLE 9i auf Win 2000/XP

danke danke

Gruß Pavoo
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.07.2004, 14:25  
Gast
 
Beiträge: n/a
Standard Re: Connect auf ORACLE 9i

Zitat:
Zitat von Pavoo
ich bekomme keine Verbindung zur ORACLE 9i, ich hatte es zuerst mit den OCI Funktionen versucht aller dings bekam ich da keine Verbindung bzw. keine Fehlermeldung das es nicht geklappt hat (v$_sessions zeigt keine aktuelle Session an).
Hast Du da mal Beispielcode?

Philipp
 
Alt 23.07.2004, 14:51  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php
$conn 
Ora_Logon("Benutzername@TNSNAME""pass");
?>
???
 
Alt 23.07.2004, 15:03  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Kindariegel
PHP-Code:
<?php
$conn 
Ora_Logon("Benutzername@TNSNAME""pass");
?>
???
Ich meinte eigentlich den Code, der bei Pavoo zum Mißerfolg geführt hat.

Philipp
 
Alt 27.07.2004, 08:43  
Gast
 
Beiträge: n/a
Standard

Hallo sory das ich noch nicht wieder geantwortet habe...

erst eimal vielen Dank für die tipps :)

Als ich die OCI Funktionen benutzen wollte wusste ich nicht das diese für ORA 8 bestimmt sind... zumal ich auch keine Fehlermeldung bekommen habe.
War dann nur überrascht das die v$_session unter ORACLE keine Session zeigte die mit PHP oder Apache oder sonst irgendein Progamm auf der Oracle angemeldet ist.

Ich habe die Verbindung so aufbauen wollen wie ihr es beschrieben habt...

<?php
$conn = Ora_Logon
("Benutzername@TNSNAME", "pass");
?>

Das Problem ist das ich im Browser die Meldung unknown function zurück bekomme..
So habe ich ein wenig nachgelesen und festgestellt da ich in der php.ini das Semi vor der ORACLE initialiesierung entfernen muss.

als ich dann die Php.exe neu gestartet habe (das bedeutet doch neu kompilieren oder???) kam er mit der Fehlermeldung das er die Oracle.lib nicht finden kann.

Dann habe ich gelesen mann muss PHP mit der Option --with-oracle(ORACLE_HOME) kompilieren muss.... macht man das in Konsole die sich öffnet wenn man Php.exe startet? Als ich das dort eingab kam bei meiner Ora Anmeldung die Fehlermeldeung Parser Fehler in line....

Ehrlich gesagt bin ich ziemlich ratlos...
Meine Frage wäre dann nochmal:
(Win XP, ORACLE 9i, PHP 4)

- Welche Umgebungsvariablen müssen gestzt sein?
- Was muss konfiguriert werden damit die ORA_ funktionen benutzt werden können?
- wie kompiliert man PHP mit der --with-oracle(ORACLE_HOME)

(kann man das auch alles in dem PHP Script mit der Anmeldefunktion machen, um das PHP script auch auf unzureichend konfigurierten systemen erfolgreich starten zu können?)


sorry ich glaube das war jetzt schon einwenig viel, ich danke euch schonmal

viele Gruße Pavoo
 
Alt 27.07.2004, 09:08  
Gast
 
Beiträge: n/a
Standard PHP compilieren

Zitat:
Zitat von Pavoo
Als ich die OCI Funktionen benutzen wollte wusste ich nicht das diese für ORA 8 bestimmt sind... zumal ich auch keine Fehlermeldung bekommen habe.
Stimmt zwar, aber nicht nur. OCI ist ab Oracle 8, so natürlich auch für 9. Kannst den Weg also weiterverfolgen.

(Wenn es mit den OCI-Funktionen keine Fehlermeldung gab, was hat denn dann nicht funktioniert?)

Zitat:
Dann habe ich gelesen mann muss PHP mit der Option --with-oracle(ORACLE_HOME) kompilieren muss....

- wie kompiliert man PHP mit der --with-oracle(ORACLE_HOME)
Inhaltlich muß ich da nun leider aussteigen, ich weiß nicht, wie man unter Windows was compiliert, kann Dir aber schonmal sagen, das bedeutet nicht, daß Du das vorhandene PHP-Programm mit irgendwelchen Spezialparametern starten mußt, sondern PHP komplett neu „herstellen“, so daß Du dann ein neues PHP-Programm hast. Compilieren heißt, aus den Quelltexten einer Software diese ganz neu „zusammenbauen“; dieses Zusammenbauen kann auch bereits mit unterschiedlichen Parametern geschehen, um Software damit „vom Start weg“ mit unterschiedlichen Funktionen auszustatten. Diese Parameter mußt Du von denen unterscheiden, mit denen man beim bereits fertigen Programm Einfluß auf bereits vorhandene Funktionen nimmt.

(Griffiger Vergleich: Du kannst Dir ein Auto mit oder ohne Navigationssystem bauen lassen (Parameter beim Compilieren, also Herstellen des Produkts), und wenn Du eines mit Navigation hast, kannst Du sie verwenden oder nicht (Parameter beim Benutzen des fertigen Produkts) aber wenn Du erstmal eines ohne hast, kannst Du auch durch noch so schlaue Parameter keine Navi dazuzaubern.)

Will sagen: Du müßtest Dir erst ein neues „Auto“ mit Oracle-7-Unterstützung bauen (lassen). D. h. Softwareentwicklungsumgebung für Windows installieren, PHP-Quelltexte besorgen (www.php.net -> Download) und dann compilieren. Sieht aber nicht ganz einfach aus, zumal Du, wie gesagt, eine Entwicklungsumgebung brauchst (dort wird Visual Studio genannt). Mein Rat wäre also, das zu lassen und es mit den anscheinend vorhandenen OCI-Funktionen zu versuchen. Zu Softwareentwicklung und PHP-Compilation unter Win kann ich leider weiter nichts sagen, vielleicht hilft ja das Kochrezept im genannten Link.

Bye
Philipp
 
Alt 27.07.2004, 10:10  
Gast
 
Beiträge: n/a
Standard

naja auf dem bildschirm ist nichts erschienen...

sprich die abfrage wurde nicht ausgeführt.

und in sysstemview v$_session in ORACLE keine session anzeigt.
 
Alt 27.07.2004, 10:29  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Pavoo
naja auf dem bildschirm ist nichts erschienen...
sprich die abfrage wurde nicht ausgeführt.
und in sysstemview v$_session in ORACLE keine session anzeigt.
Wenn der vollständige PHP-Code nur der oben genannte Schipsel ist, kein Wunder. Einfach nur $variable=irgendwas macht natürlich keine Ausgabe. Hier einen leeren Bildschirm zu bekommen, ist eher ein Symptom dafür, daß nichts schiefgegangen ist - ansonsten hätte es eine Fehlermeldung gegeben. (Irgendeinen Systemview unter Win kenne ich nicht gut genug, um beurteilen zu können, unter welchen Umständen dort eine gültige Session angezeigt wird.) Grundsätzlich gilt aber wie immer und überall in der Entwicklung: „Keine Fehlermeldung“ = „Eine gute Chance, daß kein Fehler passiert ist“. Das mal zuerst abklopfen.

Einfach mal gucken, was denn nun in $conn drinsteht. Vielleicht ist es ja ein „Handle #4“ oder sowas ähnliches, dann kann's von da aus schonmal weitergehen.

Mal ein Query ausdenken, damit und mit diesem Handle ein Statement bauen, ausführen, auslesen, ausgeben. So in etwa mit folgendem Skelett:

PHP-Code:
$conn OCILogon("dbuser""dbpassw""dbname");
$query "select ...";
$statement OCIParse ($conn$query);
OCIExecute ($statement,OCI_DEFAULT);
while (
OCIFetch($statement)) {
        echo 
OCIResult($statement,...);
}
OCILogoff($conn); 

Bye
Philipp
 
Alt 27.07.2004, 11:12  
Gast
 
Beiträge: n/a
Standard

ich habe natürlich schon mehr gemacht als nur ein login aufgebaut :)

aber in Oracle gibt es ein systemview (im DATADICTIONARY, V$_session) der alle Sitzungen die mit der DB verbunden sind anzeigt

dieser representiert :Session ID, Machien, User, Terminal, SCHEMANAME,Prgramm, Status......

und da finde ich nichts was in irgendeiner weise auf PHP oder Apache hinweist.

alseo wenn ich das richtig verstehe braucht mann die OCI funktionen in der Regel nicht extra zu initialisieren, sondern diese sind Standardmäßig installiert?!

Ist es den performance teschich besser mir OCI anstatt mit ORA zu arbeiten?

Danke pavoo
 
Alt 27.07.2004, 11:35  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Pavoo
ich habe natürlich schon mehr gemacht als nur ein login aufgebaut
Ah, OK, das ging aus den bisherigen Informationen nicht so ganz hervor. :wink:

Zitat:
aber in Oracle gibt es ein systemview (im DATADICTIONARY, V$_session) der alle Sitzungen die mit der DB verbunden sind anzeigt

und da finde ich nichts was in irgendeiner weise auf PHP oder Apache hinweist.
Wie gesagt, dazu weiß ich eigentlich nichts. Ich würde trotzdem so vorgehen, daß ich das PHP so weiterschreibe, wie ich glaube, daß es korrekt mit der DB spricht und dann sehen, ob ich Fehlermeldungen oder korrekte Ausgaben kriege. Beides bringt mich weiter und das Symptom „keine Fehlermeldung“ ist im Zusammenhang mit PHP/DB eher ein positives Zeichen. Was steht denn nun in $conn?

Zitat:
alseo wenn ich das richtig verstehe braucht mann die OCI funktionen in der Regel nicht extra zu initialisieren, sondern diese sind Standardmäßig installiert?!
Wenn Dein PHP so compiliert wurde, ja. Siehst Du ja an dem Oracle-7-Experiment. Das ist nicht eincompiliert und ora_logon hat Dir einen Fehler ausgeworfen. Wenn Dir OCILogon keinen Fehler auswirft. sollte das bedeuten, OCI ist drin.

Zitat:
Ist es den performance teschich besser mir OCI anstatt mit ORA zu arbeiten?
Also so hochperformante Sachen hab' ich noch nicht gebaut, daß mir Unterschiede ausgerechnet in dem Bereich wichtig gewesen wären. Die exakten Fortschritte kann ich auch nicht aufzählen; OCI ist einfach aktueller. www.php.net sagt z. B. „Diese Schnittstelle ist flexibler als die Standard Oracle Funktionen. Es unterstützt Binding von localen und globalen PHP Variablen an Oracle Platzhalter und hat volle LOB,FILE und ROWID Unterstützung und gestattet dem Benutzer die Verwendung von Variablendefines.“ Wahrscheinlich ist das nicht alles.

Bye
Philipp
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Sporadischer Verbindungsfehler PHP 5 / Oracle 10g janbuecker PHP-Fortgeschrittene 2 25.06.2008 06:11
Oracle bringt Updates für 45 Sicherheitslücken PHP Tipps 2007 0 03.08.2007 12:06
Zugriff auf eine ORACLE DB die Daten in eine MYSQL schreiben Cheesy PHP Tipps 2007 5 12.06.2007 15:36
Oracle Server Problem FireFIghter PHP Tipps 2006 0 02.10.2006 15:02
60 inaktive Sessions in Oracle trotz Close und Free solitaer PHP-Fortgeschrittene 8 21.04.2006 18:28
Datenbank connect auf nicht llokalen Server PHP-Fortgeschrittene 5 16.09.2005 08:23
Oracle Installation ? solitaer PHP-Fortgeschrittene 2 13.08.2005 13:17
PHP Oracle 8.1 und IIS 5 PHP Tipps 2005-2 0 06.07.2005 13:27
Connect zu einer Oracle DB?? druschba PHP Tipps 2005-2 2 29.06.2005 16:11
Oracle auf dem Weg zum Monopol? imported_Ben Off-Topic Diskussionen 1 13.12.2004 13:45
php connect zur db unter UNIX geht, über Apache nicht ... PHP Tipps 2004-2 0 23.11.2004 19:52
PHP 4.3.1 Probleme nach Oracle 10g Installation PHP Tipps 2004-2 1 11.11.2004 09:51
ADODB - Connect ---> Geht plötzlich nicht mehr.... votec-cougar PHP-Fortgeschrittene 0 06.09.2004 15:55
php verbindung auf oracle PHP Tipps 2004 1 04.08.2004 16:53
Oracle 8.04 Anbindung mit PHP PHP-Fortgeschrittene 2 20.07.2004 14:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php connect oracle, php oracle 8 connect \'verbindungen mit dieser server-version werden nicht mehr\', php oracle 9i connection, keine verbindung oracle php, php oracle 7 connect, php oracle connect, oracle 9.2 connect, ocilogon funktioniert plötzlich nicht mehr

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:37 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.