Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst PHP Fatal error: Uncaught Error: Call to undefined function oci connect

Mitglied: PlanitecX

PlanitecX (Level 1) - Jetzt verbinden

20.02.2019, aktualisiert 21.02.2019, 839 Aufrufe, 22 Kommentare, 9 Danke

Hallo Zusammen,

ich sitze seit Tagen am Problem das ich keine PHP Anwendung mit Anbindung zu Oracle zum laufen bekomme.
Bekomme folgenden Fehlermeldung:

01.
PHP Fatal error:  Uncaught Error: Call to undefined function oci_connect() [pfad]
02.
Stack trace:
03.
#0 {main}
04.
  thrown in [pfad]
01.
<?php
02.
$conn = oci_connect('User', 'Pass', 'Service_Name');
03.
if ($conn) {
04.
    echo "Connected to Oracle.";
05.
    oci_close($conn);
06.
}
07.
 
08.
if (!$conn) {
09.
    echo "Not connected to Oracle.";
10.
}
11.
 
12.
?>
System:
Win 2012R2
IIS 8.5
PHP 7.3.1
Oracle 11.2 (x86) 32Bit

*Ich habe meine IIS insoweit konfiguriert das ich über Rollen und Features CGI hinzugeügt habe.

*Die PHP.ini wurde
01.
extension=php_oci8.dll
hinzugefügt.

*Entsprechende *.dll Datein liegen auch in dem ext Verzeichnis.

*Umgebungsvariablen
01.
Path C:\instantclient_11_2
*Phpinfo kann ich aufrufen!

Habe leider keine passende Lösung gefunden bin wohl nicht der einzige der diesen Fehler hat.
Wäre schön wenn mir einer von euch behilflich seien könnte.

UPDATE
System:
Win 2012R2 (Umgebungsvariable [path:C:\oracle\product\11.2.0\client_1\bin;])
Microsoft Visual C++ 2017 Redistributable
IIS 8.5 (CGI)
PHP 7.3.1
Oracle 11.2 (x86) 32Bit
Oracle Database Express Edition x86
php_oci8 in PHP.ini aktivieren
Mitglied: 138810
20.02.2019, aktualisiert um 15:23 Uhr
Welchen Oracle Client hast du installiert? 32 oder 64bit? Wenn 64bit dann schmeiß den runter und installiere die 32bit Version.
Bitte warten ..
Mitglied: PlanitecX
20.02.2019 um 15:23 Uhr
Hi freesolo,

habe den 32Bit installiert.
Bitte warten ..
Mitglied: 138810
20.02.2019, aktualisiert um 15:26 Uhr
Lese hier alle Kommentare vor allem auch das mit der PATH:
https://stackoverflow.com/questions/22478387/call-to-undefined-function- ...
Bitte warten ..
Mitglied: PlanitecX
20.02.2019 um 15:26 Uhr
Danke für den Link Stackoverflow ist meistens meine erste Anlaufstelle.
Und bin dort alle sachen schon durch.
Bitte warten ..
Mitglied: borstenwurm
20.02.2019 um 15:26 Uhr
Zitat von PlanitecX:

$conn = oci_connect('User', 'Pass', ''Service_Name');

Bin kein PHP Experte, aber macht das was dass du vor Service_Name Gänsefüßchen verwendest und keinen Apostroph?

Abgesehen davon sagt die PHP Doku zu oci_connect(): "Returns a connection identifier or FALSE on error. " Dein "if ($conn)" dürfte also eigentlich auch so nicht funktionieren.
Bitte warten ..
Mitglied: 138810
20.02.2019, aktualisiert um 15:27 Uhr
Dann schreib das doch bitte auch, was du alles schon gemacht hast, sonst reden wir uns hier den Muund fusselig. PATH und Pfade beachtet?
Bitte warten ..
Mitglied: PlanitecX
20.02.2019, aktualisiert um 15:35 Uhr
Zitat von 138810:

Dann schreib das doch bitte auch, was du alles schon gemacht hast, sonst reden wir uns hier den Muund fusselig. PATH und Pfade beachtet?


Also ich bin wie schon erwähnt zig Seiten durch gegangen. Alles Seite und Versuche hier aufzulisten würde den Rahmen denke ich sprengen.

Path wurde unter Umgebungs Variablen eingetragen.
Was meinst du mit Pfaden?
Bitte warten ..
Mitglied: PlanitecX
20.02.2019 um 15:34 Uhr
Zitat von borstenwurm:

Zitat von PlanitecX:

$conn = oci_connect('User', 'Pass', ''Service_Name');

Bin kein PHP Experte, aber macht das was dass du vor Service_Name Gänsefüßchen verwendest und keinen Apostroph?

Abgesehen davon sagt die PHP Doku zu oci_connect(): "Returns a connection identifier or FALSE on error. " Dein "if ($conn)" dürfte also eigentlich auch so nicht funktionieren.

Hallo borstenwurm,

stimmt das gänsefüßchen kommt nicht dahin ist mir beim entfernen der korrekten Daten wohl passiert.
Wenn ich die abfrage weglassen bekomme ich die Connection ja trotzdem nicht hin.
Bitte warten ..
Mitglied: TripleDouble
20.02.2019 um 16:09 Uhr
Hallo,

den Web-Server hast Du nach Änderung der PHP.INI neu gestartet?

Gruß - TD
Bitte warten ..
Mitglied: PlanitecX
20.02.2019 um 16:21 Uhr
Zitat von TripleDouble:

Hallo,

den Web-Server hast Du nach Änderung der PHP.INI neu gestartet?

Gruß - TD

Hallo TripleDouble

ja das habe ich schon getan.
Bitte warten ..
Mitglied: PlanitecX
20.02.2019 um 16:25 Uhr
Zitat von 138810:

Dann schreib das doch bitte auch, was du alles schon gemacht hast, sonst reden wir uns hier den Muund fusselig. PATH und Pfade beachtet?

Update
In der PHP Info steht unter PHP Values folgendes passt an dieser stelle etwas nicht?
Oder was kann ich anhand er phpinfo noch überprüfen um auf den Fehler zu kommen.
01.
$_SERVER['Path']
02.

03.
C:\Oracle\product\11.2.0\client_2\bin;C:\Oracle\product\11.2.0\client_1\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn
Bitte warten ..
Mitglied: bloodstix
20.02.2019 um 16:29 Uhr
@borstenwurm doch das funktioniert, denn auch ein "connection identifier" zählt dann als "true".

@PlanitecX zeigt phpinfo denn, das die extension geladen wurde`?
Bitte warten ..
Mitglied: TripleDouble
20.02.2019 um 16:33 Uhr
Du kannst zum Beispiel prüfen

- ob die richtige PHP.INI genutzt wird (Loaded Configuration File)
- ob das Oracle-Modul geladen wird (es sollte bei php_info() in eigener Sektion mit aufgelistet werden)

TD
Bitte warten ..
Mitglied: PlanitecX
20.02.2019 um 16:42 Uhr
@bloodstix worunter sehe ich das denn?
oci finde ich nur unter Configure Command und Author.
Bitte warten ..
Mitglied: PlanitecX
20.02.2019 um 16:45 Uhr
@TripleDouble

- Der Pfad zur geladen php.ini ist korrekt.

- Das Oracle Modul hat keine eigene Sektion.
Bitte warten ..
Mitglied: godlie
20.02.2019 um 16:54 Uhr
Hast du mal in deine logs geschaut?

01.
%SystemDrive%\inetpub\logs\LogFiles
Oder es taucht etwas im EventLog auftauchen einfach das Loging von PHP umbiegen in der php.ini

01.
log_errors = on
02.
error_log = syslog
Du kannst bei error_log auch eine Pfad angeben wohin die errors gelogged werden sollen
Bitte warten ..
Mitglied: PlanitecX
20.02.2019, aktualisiert um 17:26 Uhr
Hallo godlie,

In den LogFiles steht nur:

01.
2019-02-20 16:13:25 10.18.105.111 GET /ProjektName/contest.php - 80 - 10.18.105.111 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/72.0.3626.109+Safari/537.36 - 500 0 0 3
habe es in der php.ini umgestellt aber die error.log datei wird dann nicht gefüllt, Konfus.
Bitte warten ..
Mitglied: PlanitecX
20.02.2019 um 17:21 Uhr
@TripleDouble

ich kann es mir leider auch nicht erklären warum ich keine Section für Oracle habe.
Es taucht nur unter der Kategorie Author auf.
Bitte warten ..
Mitglied: TripleDouble
21.02.2019 um 09:17 Uhr
Lass Dir mal mit
01.
var_dump(get_loaded_extensions ());
die geladenen Module ausgeben. Falls da Oracle nicht auftaucht, müsstest Du Dich mit Installation / Konfiguration / Troubleshooting des Moduls bzw. Web-Servers auseinandersetzen. Das kann viele Ursachen haben, die man per Ferndiagnose nicht heilen kann.

TD
Bitte warten ..
Mitglied: PlanitecX
21.02.2019, aktualisiert um 10:38 Uhr
@TripleDouble

Danke du hattest recht das Modul war nicht geladen.
habe nun Oracle Database Express Edition x86 installiert und wieder deinstalliert.
Und bekomme zumindest mit
01.
var_dump(get_loaded_extensions ());
oci8 angezeigt.

Jetzt habe ich einen anderen Fehler habe schon die
sqlnet.ora und tnsname.ora sind im entsprechenden Verzeichnis.

PHP Warning: oci_connect(): ORA-12541: TNS: Kein Listener in C:\inetpub\wwwroot\Projekt\index.php on line 2
01.
$connect = oci_connect('User', 'Pass', 'DB');
PHP Warning: oci_connect(): ORA-12560: TNS: Fehler bei Protokolladapter in C:\inetpub\wwwroot\Projekt\index.php on line 4
01.
$result = oci_connect($connect, $query);
PHP Warning: oci_fetch_array() expects parameter 1 to be resource, bool given in C:\inetpub\wwwroot\Projekt\index.php on line 42
01.
while($row = oci_fetch_array($result))
Bitte warten ..
Mitglied: PlanitecX
21.02.2019 um 13:10 Uhr
@all

Danke nochmal an alle es funktioniert nun.
Nach der Installation von Oracle Database Express Edition x86 und deinstallieren.

Lag es am ende nur noch an dem PHP Script der nun wie folgt aussieht.

01.
//Connection
02.
$connect = oci_connect('User', 'Passwort', 'DB');
03.
if (!$connect) {
04.
    $e = oci_error();
05.
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
06.
}
07.

08.
//Query
09.
$result = oci_parse($connect, 'SELECT * FROM Tabelle');
10.
if (!$result) {
11.
    $e = oci_error($connect);
12.
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
13.
}
14.

15.
// Perform the logic of the query
16.
$r = oci_execute($result);
17.
if (!$r) {
18.
    $e = oci_error($result);
19.
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
20.
}
Bitte warten ..
Ähnliche Inhalte
JavaScript

Uncaught TypeError: intermediate value.on is not a function

Frage von LorderichJavaScript

Hallo zusammen, ich weiss, ist etwas viel Aufwand für einen Beitrag, allerdings suche ich mittlerweile seit 2 Tagen nach ...

Windows Server

AAD Connect Sync Service Error 25001

gelöst Frage von xtra-longWindows Server2 Kommentare

Hallo. Ich möchte AAD Connect auf einem Mitgliedserver installieren. Ich hatte es zunächst auf dem DC, habe mich dann ...

Humor (lol)

Call Center

Frage von ukulele-7Humor (lol)10 Kommentare

Ich hatte eben einen eigentlich lustigen Anruf, wenn es mir dieses dummdreiste Getue nicht so auf den Nerv gehen ...

Webentwicklung

PHP mysqli Connect und Select DB mag nicht

gelöst Frage von H41mSh1C0RWebentwicklung7 Kommentare

Aloa in die Runde, Wie in dem Video versuche ich das gerade nachzubauen. - XAMPP installiert - Datenbank "gb" ...

Neue Wissensbeiträge
Humor (lol)

"Linux und 5 Gründe Warum man kein Windows verwenden sollte sondern Ubuntu Linux"

Tipp von Snowbird vor 1 TagHumor (lol)8 Kommentare

Gerade gefunden. Ja, ist etwas älter, aber irgendwie lustig?

Humor (lol)

"Warum Linux in einer vernetzten Welt einfach keinen Komfort bietet!"

Tipp von Snowbird vor 2 TagenHumor (lol)13 Kommentare

Ein interessanter Einblick warum Linux nichts für Geräteübergreifende Arbeit ist :)

Humor (lol)
Zuviel Speicher ist ungesund. :-)
Tipp von Lochkartenstanzer vor 2 TagenHumor (lol)17 Kommentare

Moin Kollegen, Heute hatte ich ein ungewöhnliches Aha-Erlebnis: Über das Wochenende habe ich einen einen 6 Jahre alten Bare-Metal ...

Windows Update

KB4517297 verfügbar, behebt Fehler in VB6 VBA VBScript

Information von sabines vor 2 TagenWindows Update

Das Update behebt mögliche Fehler in VB6, VBA und VBScript, die durch das Update KB4512486 vom August entstanden sind. ...

Heiß diskutierte Inhalte
Router & Routing
Deinstalliertes Geräte wird in FritzBox noch immer als verbundenes Gerät angezeigt
gelöst Frage von imebroRouter & Routing18 Kommentare

Hallo, in meiner FritzBox 7490 wird im Bereich "Funknetz" ein Gereät bei den verbundenen Geräten angezeigt, wobei ich nicht ...

Sonstige Systeme
Ist es möglich ein ISDN-Telefon an einen analogen Anschluss anzuschließen?
Frage von cramtroniSonstige Systeme14 Kommentare

Also anders herum geht es ja, da gibt es ja diese Adapter von RJ11 auf TAE-F, aber gibt es ...

Windows 10
Windows 10 druckt nicht mehrere Kopien?
Frage von StefanKittelWindows 1014 Kommentare

Hallo, ich hatte gerade einen Anruf eines Kunden. Sein neuer PC (Win 10 1903) druckt nicht mehr mehrere Seiten ...

Windows Server
Nachfolger von Windows Home Server?
gelöst Frage von SnowbirdWindows Server13 Kommentare

Hallo, gibt es eigentlich ein Nachfolger von Windows Home Server oder etwas vergleichbares? Snowbird