sql >> Databasteknik >  >> RDS >> Oracle

Det gick inte att ladda det dynamiska biblioteket 'C:\xampp\php\ext\php_oci8.dll' - %1 är inte ett giltigt Win32-program

Ditt fel visar en inbyggd typ som inte matchar.

Lös det genom att följa dessa steg:

Se till att du laddar ner och installerar Oracle instantclient på:http://www.oracle.com/technetwork/topics/winsoft -085727.html , men observera:

  1. Notera ditt Oracle databasversion; använd Version 12.1.x för Oracle-databasen 12c och Version 11.1.x för 11g utgåvor.
  2. I båda fallen, se till att du laddar ner Basic Lite version av Oracle instantclient.

Lägg sedan till platsen för din Oracle-instantclient till din systemvariabel Path under dina miljövariabler. Se till att du har både PHP för din xampp och dess ext tillgängliga och ställ in där också (om inte, lägg till dem).

Fortsätt sedan med att lägga till en ny systemvariabel med TNS_ADMIN som variabelnamn och platsen till Oracle instantclient som variabelt värde .

Definiera även dina användarvariabler PATH med samma plats till Oracle instantclient som värde .

Efter detta steg startar du om din dator för en fullständig spridning av de nydefinierade miljövariablerna.

Väl på kan du öppna Windows Kommandotolk och kör där oci* för att säkerställa att du hade dina miljövariabler väldefinierade; svaret ska se ut så här:

C:\Users\flex>where oci*

C:\oraclexe\app\oracle\product\11.2.0\server\bin\oci.dll
C:\oraclexe\app\oracle\product\11.2.0\server\bin\ocijdbc11.dll
C:\oraclexe\app\oracle\product\11.2.0\server\bin\ocijdbc11.sym
C:\oraclexe\app\oracle\product\11.2.0\server\bin\ociw32.dll
C:\instantclient_11_2\oci.dll
C:\instantclient_11_2\oci.sym
C:\instantclient_11_2\ocijdbc11.dll
C:\instantclient_11_2\ocijdbc11.sym
C:\instantclient_11_2\ociw32.dll
C:\instantclient_11_2\ociw32.sym

Om inte, måste du ha missat något och behöva gå igenom processen igen och se till att du slutför den effektivt.

Du kan nu gå vidare till din php.ini-fil (förutsatt att miljövariabler är väldefinierade) och aktivera din oci tillägg (php_oci8.dll och php_oci8_11g.dll) genom att avkommentera dem; du kan uppnå det genom att helt enkelt ta bort halvkolumnen (; ) före nämnda tillägg.

Kom ihåg att spara din php.ini-fil, starta sedan om eller starta din apache om den inte redan körs.

För att kontrollera att dina PHP oci8-konfigurationer är aktiverade kan du gå tillbaka till din Windows-kommandotolk och köra:php --ri oci8; svaret bör likna det nedan:

C:\Users\flex>php --ri oci8

OCI8 Support => enabled
OCI8 DTrace Support => disabled
OCI8 Version => 2.1.1
Revision => $Id: 86f22a208f89dcd5b305e82929a7429683968b11 $
Oracle Run-time Client Library Version => 11.2.0.4.0
Oracle Compile-time Instant Client Version => 10.2

Directive => Local Value => Master Value
oci8.max_persistent => -1 => -1
oci8.persistent_timeout => -1 => -1
oci8.ping_interval => 60 => 60
oci8.privileged_connect => Off => Off
oci8.statement_cache_size => 20 => 20
oci8.default_prefetch => 100 => 100
oci8.old_oci_close_semantics => Off => Off
oci8.events => Off => Off

Statistics =>
Active Persistent Connections => 0
Active Connections => 0

Alternativt kan du skapa en PHP-fil med <?php phpinfo(); ?> som innehåll, öppna det sedan i din webbläsare och sök efter oci8-förekomster; den bör också visa aktiverad där.



  1. Entity Framework Cascade Delete

  2. SSIS API:Hur vet man vilket gränssnitt man ska casta ett __COMObject till?

  3. Bilder som länkar i MySQL-databas?

  4. Hur man hittar LEFT OUTER JOIN eller RIGHT OUTER JOIN med ORACLE JOIN (+)