Hallo,

Heb een project waarin ik MS Access gebruik als backend. In PHP maak ik de verbinding met de volgende code regels.

$db_conn = new \COM("ADODB.Connection") or die("Cannot start ADO"); ( overigens, óók "new COM(..." zonder de '\' voor de 'COM' geeft dezelfde foutmelding )
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=". realpath("../db/whatever.mdb").";";
$db_conn->open($connstr);

Na het installeren van een nieuwe XAMPP versie ( met PHP 7.0.1 ) krijg ik nu de volgende foutmelding: Fatal error: Uncaught Error: Class 'COM' not found in .... ( de rest van de melding geeft de bestandsnaam en het regelnummer waar de fout optreedt, zoals "je" kan raden de bovenste regel in het bovenstaande voorbeeld )

In de "oude" XAMPP ( met PHP 5.4.7 ) werkte alles prima. Als ik die twee versies vergelijk, valt me meteen op dat in de 7.0.1 versie de volledige "pear" map ( onder de map "php" ) is verdwenen én dat de "pear" map in de 5.4.1 versie een submap genaamd "adodb" bevat.

Zit 'em nou ook hierin de "fout" en is dit op te lossen door de map uit de 5.4.1 versie simpelweg in de 7.0.1 versie te kopiëren?
De pear map is in jouw geval niet relevant, omdat je geen gebruik maakt van de pear ADODB. Wat relevant is, is het ontbreken van de COM class, welke volgens php.net wel onderdeel is van PHP 7. Heb je de benodigde extensies ingeschakeld (php_com_dotnet.dll in php.ini)? Zoja, geeft je error log startup warnings/errors?

Zie ook http://php.net/manual/en/com.setup.php
Heb de regel "extension=php_com_dotnet.dll" in php.ini toegevoegd ( stond er nog helemaal niet, zelfs niet 'disabled' ) en daarmee werkt het!

Thnks!

Reageren