Cześć,
usiłuję połączyć się z bazą MariaDB przy pomocy PDO. XAMPP i PHP 7.4.11. (Windows 10).
PHPInfo pokazuje, że są dostępne sterowniki do MS SQL i MySQL:
PDO drivers:
sqlsrv, mysql, sqlite
pdo_mysql Client API version
mysqlnd 7.4.11
Połączenie z SQL Server działa bez problemu, natomiast przy połączeniu z MySQL otrzymuję komunikat: could not find driver
Konfiguracja php.ini:
extension_dir=”C:\PHP\xampp\php\ext”
sterowniki:
extension=php_pdo_sqlsrv.dll
extension=php_pdo_mysql.dll
Sterowniki są oczywiście na swoim miejscu,
plik php_pdo_mysql.dll z datą 2020-09-29 16:24, rozmiar 30kB. Identyczną datę ma plik php_pdo_sqlsrv.dll.
Kod PHP:
<?php $conStr='MySQL:host=localhost;dbname=Test'; $Użytkownik="root"; $Hasło=""; $Połączenie = new PDO($conStr, $Użytkownik, $Hasło);
Wszelka pomoc mile widziana 🙂
Pozdrawiam,
Marek
Cześć,
problem rozwiązał się bardzo łatwo (przepraszam, że dopiero teraz o tym piszę). Otóż, w tzw. connection string zamiast “MySQL” powinno być “mysql”(MAŁYMI LITERAMI). Czyli:
$conStr
=
'mysql:host=localhost;dbname=Test'
;
Wtedy wszystko działa bez problemu 🙂
Pozdrawiam, wszytkiego najlepszego w Nowym Roku 🙂
Marek
Hej Opaves,
niestety, nie spotkałem się nigdy z tym błędem (pewnie dlatego, że dawno nie pisałem niczego lokalnie na Windowsie) ale z tego, co poszperałem w sieci, to problem pojawia się często.
Od czego zacząłbym, to:
- Zakomentował extension do sqlsrv i zostawił tylko mysql aktywny. Być może jest jakiś problem z obsługą więcej niż jednego rozszerzenia.
- Spróbował zainstalować np. EasyPHP zamiast XAMPPa i zobaczył, czy tam problem również występuje. Czytam właśnie, że czasami wersja Apache nie jest kompatybilna z konkretną wersją rozszerzenia PDO.
- Spróbował pobrać inną wersję pliku php_pdo_mysql.dll i podmienił w systemie.
Niestety, nie mam gotowego rozwiązania.