Fehler bei oci_connect()
martina
- php
Ich musst mit oci_connect eine Verbindung zu einer Oracle Datenbank machen. Leider bekomme ich die folgende Fehlermeldung:
Fatal error: Call to undefined function oci_connect() in c:\Inetpub\wwwroot\PHP\connect.php on line 5
Im Code sieht es so aus:
$db = "Datenbankname";
$c1 = oci_connect("benutzername", "passwort", $db);
Was mache ich falsch?
Danke für die Antworten
hallo,
du nutzt PHP5?
mfg
deni
hallo,
du nutzt PHP5?
Ja
echo $begrüßung;
Fatal error: Call to undefined function oci_connect() in c:\Inetpub\wwwroot\PHP\connect.php on line 5
Was mache ich falsch?
Du hast dich nicht vergewissert, dass die OCI-Funktionen in PHP zur Verfügung stehen. phpinfo() muss einen Abschnitt "oci8" ausgeben.
Das Freigeben der oci-Funktionen erfolgt durch Entfernen des Kommentars der "extension=php_oci8.dll"-Zeile in der php.ini. Möglicherweise muss auch noch das extension_dir richtig gesetzt werden. Weiterhin muss ein Oracle-Client auf dem System installiert sein.
Wenn es dann immer noch Fehler gibt, solltest du den verwendeten Webserver, die PHP-Version und die API (CGI/Modul/...) angeben.
echo "$verabschiedung $name";
Du hast dich nicht vergewissert, dass die OCI-Funktionen in PHP zur Verfügung stehen. phpinfo() muss einen Abschnitt "oci8" ausgeben.
Den Abschnitt oci8 gibt es nicht.
Das Freigeben der oci-Funktionen erfolgt durch Entfernen des Kommentars der "extension=php_oci8.dll"-Zeile in der php.ini. Möglicherweise muss auch noch das extension_dir richtig gesetzt werden. Weiterhin muss ein Oracle-Client auf dem System installiert sein.
Die Zeile extension=php_oci8.dll habe ich aus der php.ini gelöscht.
Leider funktioniert es immer noch nicht. Was müsste ich bei der extension_dir eingeben? Ein Oracle-Client ist auf dem System soweit ich weiss, vorhanden.
echo $begrüßung;
Das Freigeben der oci-Funktionen erfolgt durch Entfernen des Kommentars der "extension=php_oci8.dll"-Zeile in der php.ini.
Die Zeile extension=php_oci8.dll habe ich aus der php.ini gelöscht.
Nicht die Zeile, nur das aus der Zeile einen Kommentar machende Semikolon vorndran muss entfernt werden, damit diese zur Geltung kommen kann und PHP die DLL lädt.
Leider funktioniert es immer noch nicht. Was müsste ich bei der extension_dir eingeben?
Das muss auf das Verzeichnis zeigen, in dem sich die o.g. php_oci8.dll befindet.
echo "$verabschiedung $name";
Nicht die Zeile, nur das aus der Zeile einen Kommentar machende Semikolon vorndran muss entfernt werden, damit diese zur Geltung kommen kann und PHP die DLL lädt.
Habe ich nun gemacht, bekomme aber folgende Fehlermeldung:
PHP Startup: Unable to load dynamic library './php_oci8.dll' - Das angegebene Modul wurde nicht gefunden.
Das muss auf das Verzeichnis zeigen, in dem sich die o.g. php_oci8.dll befindet.
diese wird nicht gefunden...
echo $begrüßung;
Habe ich nun gemacht, bekomme aber folgende Fehlermeldung:
PHP Startup: Unable to load dynamic library './php_oci8.dll' - Das angegebene Modul wurde nicht gefunden.
Das muss auf das Verzeichnis zeigen, in dem sich die o.g. php_oci8.dll befindet.
diese wird nicht gefunden...
Dass sie nicht geladen werden kann, kann daran liegen dass sie nicht gefunden wird, oder daran, dass sie weitere DLLs nachladen möchte, die nicht gefunden werden.
Bei mir (eben grad noch mal getestet) geht's so (PHP unter IIS):
Für PHP4 ist die Vorgehensweise prinzipiell gleich, nur dass noch der Inhalt des dll-Verzeichnisses in das Verzeichnis der php.exe kopiert/verschoben werden muss.
Wenn es mit den Hinweisen nicht funktioniert oder du den Apachen verwendest, muss ich passen.
echo "$verabschiedung $name";
was meinst du hiermit:
- IIS-Konfiguration: Zuweisen der LW:\Pfad\zu\PHP\php-cgi.exe zur Endung .php
echo $begrüßung;
was meinst du hiermit:
- IIS-Konfiguration: Zuweisen der LW:\Pfad\zu\PHP\php-cgi.exe zur Endung .php
Wenn ein IIS verwendet wird, musst dem ja auch mitgeteilt werden, dass er Dateien mir der Endung .php zum PHP durchreichen soll. Wie das im einzelnen geht kann man im PHP-Handbuch und der Dokumentation des IIS nachlesen.
echo "$verabschiedung $name";
Mein IIS kann die PHP Datein ausführen.. Das funktioniert.
Aber das mit dem oci_connect funktioniert immer noch nicht. Woran könnte es nun liegen?