I have been trying to connect to MySQL from PHP using PDO. However, I get this error message:
PHP Fatal error: Uncaught PDOException: could not find driver in /home/abdullah/Documents/projects/cs50_radio/public/test.php:5
Stack trace:
#0 /home/abdullah/Documents/projects/cs50_radio/public/test.php(5): PDO->__construct(‘mysql:host=127….’)
PDO is enabled and installed. I checked phpinfo(), but I can’t figure out the error.
Here is my code used to connect:
<?php
$user = "root";
$pass = "root";
$dbh = new PDO("mysql:host=127.0.0.1;dbname=radio;port=3306", $user, $pass);
//$dbh->query('INSERT INTO users (name) VALUES ("abdullah")');
$dbh = null;
?>
Should my project folder contain any additional drivers or files? Or am I missing something in my code?
asked Nov 27, 2016 at 9:19
4
To use different drivers you need to install them.
On Windows you simply uncomment a line in php.ini:
extension=php_pdo_mysql.dll
On Debian or similar Linux distribution you can just install the extension with the package manager:
sudo apt update
sudo apt install php7.1-mysql
Remember to install the correct version.
answered Nov 27, 2016 at 9:54
VeeeneXVeeeneX
1,55618 silver badges26 bronze badges
1
I had the same problem, resulting from some incompatibility (not immediately evident) between the Apache and PHP versions I had downloaded. Try writing a toy PHP script that simply creates a new PDO object, — something like:
<?php
$dbname = 'mydb';
$username = 'myuser';
$password = 'mypassword';
try {
$pdo = new \PDO("mysql:host=localhost;dbname=$dbname", $username, $password);
} catch (Exception $e) {
print $e->getMessage() . "\n";
}
print "OK\n";
Then run that script from the command line. If you don’t get the ‘could not find driver’ error message, then that points to an incompatibility between your PHP and Apache versions.
answered May 27, 2018 at 1:29
flapjackflapjack
871 silver badge5 bronze badges
In my PHP 7.4 I didn’t get php.ini. Instead, I have php.ini-development and php.ini-production. So, I have created a new php.ini file only and copied the configurations into it.
Then I have uncommented and changed the extension directory to the full installation path.
extension_dir = "C:/php/ext"
And uncommented:
extension=pdo_mysql
Finally, restart the server.
answered Dec 13, 2019 at 7:58
AbdulwehabAbdulwehab
1,3562 gold badges10 silver badges12 bronze badges
1
Ok, somehow I had a problem with the extension itself. It helped to reinstall the MySQL extension. Here an example for PHP 7.3:
sudo apt purge php7.3-mysql
sudo apt install php7.3-mysql
sudo service apache2 restart
answered Feb 23, 2020 at 21:14
1
-
Главная
Список форумов
Ошибки Open Server
-
Поиск
-
- Текущее время: 09 окт 2023, 10:18
- Часовой пояс: UTC+03:00
-
santex85
- Сообщения: 2
- Зарегистрирован: 18 апр 2016, 12:27
-
Максим
- Сообщения: 6022
- Зарегистрирован: 11 дек 2010, 20:29
-
orogastus
- Сообщения: 3
- Зарегистрирован: 23 янв 2015, 21:35
Re: Ошибка Uncaught exception ‘PDOException’ with message ‘could not find driver’
Непрочитанное сообщение
orogastus »
Вот такая ошибка вылазит:
Fatal error: Uncaught exception ‘PDOException’ with message ‘could not find driver’ in C:\OSPanel\domains\C9\include\setting.php:9 Stack trace: #0 C:\OSPanel\domains\C9\include\setting.php(9): PDO->__construct(‘sqlsrv:server=8…’, ‘sa’, ‘m128634!’) #1 C:\OSPanel\domains\C9\script-head.php(3): include_once(‘C:\OSPanel\doma…’) #2 C:\OSPanel\domains\C9\index.php(1): include(‘C:\OSPanel\doma…’) #3 {main} thrown in C:\OSPanel\domains\C9\include\setting.php on line 9
скриншот: все подключено раскомментировано: http://prntscr.com/kskl0e
помогите, куда копать?
include_once(«function.php»);
$sql = new PDO(«sqlsrv:server=».MSSQL_HOST.»; Database=».MSSQL_DB.»»,MSSQL_USER,MSSQL_PASS);
$api = new API(true);
$ip = $_SERVER[‘REMOTE_ADDR’];
вот что там
-
orogastus
- Сообщения: 3
- Зарегистрирован: 23 янв 2015, 21:35
-
Максим
- Сообщения: 6022
- Зарегистрирован: 11 дек 2010, 20:29
Re: Ошибка Uncaught exception ‘PDOException’ with message ‘could not find driver’
Непрочитанное сообщение
Максим »
voron121, вы ничего не можете понять, т.к. не читали или невнимательно прочитали руководство пользователя. В противном случае вы могли бы знать, что корректная среда окружения доступна только в тех программах, что запускаются из меню Open Server. А когда вы запускаете свои обычные программы в Windows они естественно не видят переменные окружения Open Server и вы получаете то, что получаете.
На будущее, предвидя ваше следующее непонимание, замечу, что если вы меняете версию любого модуля в настройках, то меняется и окружение. Поэтому программы, запущенные из меню ранее, необходимо перезапускать, чтобы они увидели обновлённое окружение. Всё это указано в руководстве.
@meet-bhagdev
Thanks for your response.
[root@dev ~]# odbcinst -q -d -n «ODBC Driver 13 for SQL Server»
[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0
Threading=1
UsageCount=2
[root@dev ~]# php -m
[PHP Modules]
……
PDO
pdo_mysql
PDO_OCI
PDO_ODBC
pdo_sqlite
pdo_sqlsrv
……
sqlsrv
……
[Zend Modules]
Zend OPcache
[root@dev ~]# php -v
PHP 7.0.9 (cli) (built: Aug 8 2016 12:22:02) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.9, Copyright (c) 1999-2016, by Zend Technologies
[root@dev ~]# php -i
……
PDO
PDO support => enabled
PDO drivers => oci, odbc, sqlite, mysql, sqlsrv
……
PDO_ODBC
PDO Driver for ODBC (unixODBC) => enabled
ODBC Connection Pooling => Enabled, strict matching
……
pdo_sqlsrv
pdo_sqlsrv support => enabled
ExtensionVer => 4.0.2.0
Directive => Local Value => Master Value
pdo_sqlsrv.client_buffer_max_kb_size => 10240 => 10240
pdo_sqlsrv.log_severity => 0 => 0
……
sqlsrv
sqlsrv support => enabled
ExtensionVer => 4.0.2.0
Directive => Local Value => Master Value
sqlsrv.ClientBufferMaxKBSize => 10240 => 10240
sqlsrv.LogSeverity => 0 => 0
sqlsrv.LogSubsystems => 0 => 0
sqlsrv.WarningsReturnAsErrors => On => On
……
[root@dev ~]# cat /web/test.php
«;
} catch ( PDOException $e ) {
echo ‘The connection failed: ‘ . $e->getMessage ();
}
?>
result:
The connection failed: could not find driver.
[root@dev ~]# cat /usr/local/php/etc/php.ini
……
date.timezone = PRC
include_path = «/usr/local/php/lib/php»
extension=php_sqlsrv_7_nts.so
extension=php_pdo_sqlsrv_7_nts.so
zend_extension=opcache.so
Configure Command:
./buildconf —force
./configure LIBS=-lodbc
—prefix=/usr/local/php
—with-apxs2=/usr/local/httpd/bin/apxs
—with-config-file-path=/usr/local/php/etc
—enable-pdo
—with-mysqli=/usr/local/mysql/bin/mysql_config
—with-pdo-mysql=mysqlnd
—with-pdo-oci=instantclient,/usr,12.1.0.2
—with-oci8=instantclient,/usr/lib/oracle/12.1/client64/lib,12.1.0.2
—with-unixODBC=/usr
—with-pdo-odbc=unixODBC,/usr
—with-sqlite3
—with-pdo-sqlite
—with-iconv=/usr/local/libiconv
—with-zlib=/usr/local/zlib
—with-zlib-dir=/usr/local/zlib
—with-openssl=/usr/local/ssl
—with-pcre-dir=/usr/local/pcre
or
./buildconf —force
./configure LIBS=-lodbc
—prefix=/usr/local/php
—with-apxs2=/usr/local/httpd/bin/apxs
—with-config-file-path=/usr/local/php/etc
—enable-pdo=shared
—with-mysqli=/usr/local/mysql/bin/mysql_config
—with-pdo-mysql=shared,mysqlnd
—enable-mysqlnd
—with-sqlite3=shared,/usr/local/sqlite3
—with-pdo-sqlite=shared,/usr/local/sqlite3
—with-pdo-oci=shared,instantclient,/usr,12.1.0.2
—with-oci8=shared,instantclient,/usr/lib/oracle/12.1/client64/lib,12.1.0.2
—with-unixODBC=shared,/usr
—with-pdo-odbc=shared,unixODBC,/usr
—with-iconv=/usr/local/libiconv
—with-zlib=/usr/local/zlib
—with-zlib-dir=/usr/local/zlib
—with-openssl=/usr/local/ssl
—with-pcre-dir=/usr/local/pcre
[root@dev ~]# httpd -V
Server version: Apache/2.4.23 (Unix)
Server built: Aug 8 2016 01:24:13
Server’s Module Magic Number: 20120211:61
Server loaded: APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with….
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT=»/usr/local/httpd»
-D SUEXEC_BIN=»/usr/local/httpd/bin/suexec»
-D DEFAULT_PIDLOG=»logs/httpd.pid»
-D DEFAULT_SCOREBOARD=»logs/apache_runtime_status»
-D DEFAULT_ERRORLOG=»logs/error_log»
-D AP_TYPES_CONFIG_FILE=»conf/mime.types»
-D SERVER_CONFIG_FILE=»conf/httpd.conf»
The test URL:
http://i-up.vicp.cc/info.php
http://i-up.vicp.cc/pdo-test.php
Compiled into static or dynamic modules can not solve this problem.
The problem has been bothering me for a lot of days. Hope to get your help.thanks.
Я только что установил Debian Lenny с Apache, MySQL и PHP, и я получаю PDOException could not find driver
.
Это конкретная строка кода, на которую она ссылается:
$dbh = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASS)
DB_HOST
, DB_NAME
, DB_USER
и DB_PASS
— это константы, которые я определил. Он отлично работает на производственном сервере (и на моей предыдущей настройке сервера Ubuntu).
Как это связано с моей установкой PHP?
Поиск в Интернете не помог, все, что я получаю, это обмен экспертами и примеры, но никаких решений.
Ответ 1
Вам нужен модуль pdo_mysql. Поиск следующего в phpinfo(),
pdo_mysql
PDO Driver for MySQL, client library version => 5.1.44
Ответ 2
В вашем коде dsn показано, что вы пытаетесь подключиться к драйверу mysql. Ваше сообщение об ошибке указывает, что этот драйвер недоступен.
Убедитесь, что на вашем сервере установлено расширение mysql.
В Ubuntu/Debian вы проверяете пакет с помощью:
dpkg --get-selections | grep php | grep mysql
Установите пакет php5-mysql, если у вас его нет.
В Ubuntu/Debian вы можете использовать:
- PHP5:
sudo apt-get install php5-mysql
- PHP7:
sudo apt-get install php7.0-mysql
Наконец, чтобы заставить его работать, вам необходимо перезапустить веб-сервер:
- Apache:
sudo /etc/init.d/apache2 restart
- Nginx:
sudo /etc/init.d/nginx restart
Ответ 3
Обновление: более новые версии должны использовать пакет php-sqlite3
вместо php5-sqlite
. Поэтому используйте это, если используете последнюю версию ubuntu:
sudo apt-get install sqlite php-sqlite3
Оригинальный ответ на вопрос:
sudo apt-get install sqlite php5-sqlite
sudo /etc/init.d/apache2 restart
Если ваш phpinfo() не показывает строку pdo_sqlite (в моем случае на моем сервере Ubuntu), вам просто нужно запустить строки выше, и тогда вам будет хорошо идти.
Ответ 4
Для более новых версий Ubuntu с PHP 7.0 вы можете получить пакет php-mysql
:
sudo apt-get install php-mysql
Затем перезагрузите сервер:
sudo service apache2 restart
Ответ 5
На моей машине с Windows мне пришлось указать абсолютный путь к расширению dir в моем php.ini:
extension_dir = "c:\php5\ext"
Ответ 6
Я была такая же проблема. Решение зависит от ОС. В моем случае у меня есть Debian, поэтому для его решения:
- Обновил мою версию php с (php5 до php7)
-
Установите php-mysql и php7.0-mysql
apt-get install php-mysql apt-get install php7.0-mysql
-
Я отредактировал свой
php.ini
в /etc/php/7.0/apache2/php.iniuncomment the line : extension=php_pdo_mysql.dll
-
Затем перезапустите Apache:
service apache2 restart
Это решает мою проблему
Ответ 7
В Ubuntu просто выполните
sudo apt-get install php5-mysql
Ответ 8
sudo apt-get install php-mysql
хорошо работал на ubuntu и php 7
Ответ 9
Вы проверили свой php.ini(проверьте правильность расположения с помощью phpinfo()), если MySQL и драйвер установлены правильно?
Ответ 10
При добавлении их в ваш php.ini убедитесь, что ссылка php_pdo.dll является первой до dll-драйверов db, иначе это также вызовет это сообщение об ошибке. Добавьте их так:
[PHP_PDO]
extension=php_pdo.dll
[PHP_PDO_MYSQL]
extension=php_pdo_mysql.dll
Ответ 11
Для PHP 5.5
on CentOS
я исправил это, установив пакет php55-mysqlnd
.
sudo yum -y install php55w-mysqlnd # For Webtatic
sudo yum -y install php55u-mysqlnd # For Remi
Для помощи в установке, напишите комментарий, поскольку он зависит от способа установки PHP в вашей системе. Доступные репо — webtatic
и remi
.
Ответ 12
Я провел последний день, пытаясь понять, почему я получил следующую ошибку. Я запускаю Ubuntu 14.04.
Проблема:
Я заметил, что моя версия PHP-CLI запускала php7.0, но php_info() (веб-версия) отображала php 5.5.9. Несмотря на то, что php_info() сказал, что pdo включен, использование командной строки (CLI) не распознает команду pdo_mysql. Оказывается, mysql был включен для моей старой версии, но не для версии CLI. Все, что я сделал, это установить mysql для php7.0, и он смог работать.
Это то, что сработало:
Чтобы проверить версию:
php -v
Чтобы установить mysql для php7.0
sudo apt-get install php7.0-mysql
1) убедитесь, что ваша версия CLI такая же, как ваша веб-версия
2) Если они отличаются друг от друга, убедитесь, что ваша версия CLI имеет подключаемый модуль mysql, поскольку он не поставляется с ним по умолчанию.
Ответ 13
для Windows 8.1/10 в файле:\\php.ini вы должны раскомментировать строку «extension = pdo_mysql»
Ответ 14
Проверьте, доступен ли модуль с php -m | grep pdo_mysql
php -m | grep pdo_mysql
.
Если нет, для PHP 7.2 вы можете установить соответствующий пакет с помощью sudo apt install php7.2-mysql
.
Используйте аналогичную команду в других версиях PHP и менеджерах пакетов.
Ответ 15
В моем случае моя строка DSN была неправильной, в частности, она не содержала mysql://.
Я бы ожидал другого сообщения об ошибке, возможно, что-то вроде строки DSN не указывает драйвер/протокол.
Добавление mysql://
в начало строки DSN устраняет проблему.
Ответ 16
Проверьте правильность установки extension_dir в файле конфигурации php. Попробуйте прокомментировать/раскомментировать некоторые расширения и посмотреть, отразилось ли это на phpinfo().
Если это не так, либо файл конфигурации php не может быть загружен (неправильное местоположение). Extension_dir комментируется или устанавливается в неправильное местоположение.
Ответ 17
Проблема заключается в отсутствии библиотеки php в mysql. В CentOs я исправил его, запустив
# yum install php-mysql
, а затем перезапуск apache с помощью # /bin/systemctl restart httpd.service
Обратите внимание, что именование немного отличается от дистрибутивов, основанных на debian/ubuntu, php- > php5 и httpd- > apache2.
Ответ 18
Я очень рекомендую mysqllnd
вместо mysql
из-за того, что у вас будет много проблем, таких как преобразование числа и тип бит, и проблема с расширением mysql
.
на ubuntu install mysqllnd
со следующей командой:
sudo apt-get install php5-mysqlnd
Ответ 19
Я исправил эту проблему на своем Debian 6.
Обычно я только что установил пакет php5-common
. После установки вам необходимо перезапустить веб-сервер (apache или nginx в зависимости от того, какой из них вы установили).
Затем я просто делаю lsof
на id процесса apache (lsof -p process_id
) следующим образом:
sudo lsof -p 1399 #replace 1399 by your apache process id
apache2 1399 root mem REG 254,2 80352 227236 /usr/lib/php5/20090626/xmlrpc.so
apache2 1399 root mem REG 254,2 166496 227235 /usr/lib/php5/20090626/suhosin.so
apache2 1399 root mem REG 254,2 31120 227233 /usr/lib/php5/20090626/pdo_mysql.so
apache2 1399 root mem REG 254,2 100776 227216 /usr/lib/php5/20090626/pdo.so
apache2 1399 root mem REG 254,2 135864 227232 /usr/lib/php5/20090626/mysqli.so
Как вы можете видеть выше, модули устанавливаются на пути к файлу, который неизвестен или управляется общим путем библиотеки:/ usr/lib/php5/20090626/
. Для вашей установки это может быть другое, но только путь к pdo_mysql.so, pdo.so, mysqli.so. Вот почему Drupal или любой другой php-движок не смогли найти библиотеку и показали, что ошибка: PDOException: could not find driver
Я просто не знаю, почему он установлен на такой странный путь, для меня это просто ошибка в установке пакета библиотеки script в debian 6.
Я решил проблему, создав символический для всех файлов под /usr/lib/php5/20090626/
, чтобы
/usr/lib/php5/
с помощью этой команды:
ln -s /usr/lib/php5/20090626/* /usr/lib/php5/
Ответ 20
У меня возникла такая же проблема после того, как я удалил пакет php5 (включая все драйверы), чтобы установить пакет php7. Я фактически установил пакет php7 без модуля mysql.
Мне удалось решить это, набрав терминал:
1) $apt-cache search php7
который перечисляет все модули, просматривая найденные модули,
php7.0-mysql — модуль MySQL для PHP
2) $sudo apt-get install php7.0-mysql
Что это. Это работало для меня в моей Linux-системе.
(используйте соответствующую версию php, ваш может быть php5)
Ответ 21
Просто еще одна вещь, чтобы подтвердить, что некоторые люди копируют/вставляют пример кода из Интернета, чтобы начать. Убедитесь, что вы здесь MySQL:
... $dbh = new PDO ("mysql: ...
В некоторых примерах это показывает
$dbh = new PDO ("dblib ...
Ответ 22
У меня была такая же проблема во время тестов с отдельным php.ini. Мне пришлось добавить эти строки в свой собственный файл php.ini:
[PHP]
extension = mysqlnd.so
extension = pdo.so
extension = pdo_mysql.so
Примечание: точно в этом порядке
Ответ 23
В моем случае я использовал PDO с php-cli, и он работал нормально.
Только когда я попытался подключиться от apache, у меня возникла проблема с отсутствующим драйвером, что я не совсем понял.
Простой apt-get install php-mysql
решил. (Ubuntu 16.04/PHP7. Кредиты идут к выбранному ответу и комментарию Ивана)
Надеюсь, это поможет.
Ответ 24
Для тех, кто использует Symfony2/3, и задается вопросом, почему вы получаете эту ошибку. Если вы используете «mapping_types» , вы можете столкнуться с этой ошибкой. Причина в том, что «mapping_types» помещен на неправильном уровне. Например:
doctrine:
dbal:
mapping_types:
set: string
Это «mapping_types» должно быть размещено на этом уровне:
doctrine:
dbal:
#To counter the error caused by 'mapping_types'
connections:
default:
server_version: %database_server_version%
mapping_types:
set: string
Я надеюсь, что это поможет
Я нашел решение здесь: https://github.com/doctrine/DoctrineBundle/issues/327
Ответ 25
Куда бы я ни пошел, я читал, что путь extension_dir
должен быть изменен с ext
на абсолютный путь. Это сработало для меня. Однако, когда я пытался собрать сервер моего коллегиного ПК, мне пришлось допустить значение ext
вместо указания абсолютного пути.
Если вы указали абсолютный путь, и он все еще не найден, попробуйте как абсолютный путь, так и ext
.
Ответ 26
Некорректная установка PHP
Я испытывал ту же проблему. И я надеюсь, что это поможет кому-то, кто сталкивается с такой же проблемой, как я.
сценарий
OS = Windows 10
Platform = XAMPP
PHP Version = 7 (Multiple Version seem to have been installed in the PC)
Я создал phpinfo.php
файл в public
папке и запустить phpinfo()
, чтобы посмотреть на место моего php.ini
файла.
Расположение PHP.ini = c:\xampp\php\php.ini
проблема
Вызов c:\xampp\htdocs> php -v
вернул PHP 7.2.3
но phpinfo.php
показал PHP 7.2.2
.
Решение
Вместо звонка
php artisan migrate:install
который дал мне эту ошибку, я использовал
c:\xampp\php\php artisan migrate:install
и это сработало.
Ответ 27
Проверьте правильный путь в extension_dir в вашем phpinfo().
Ответ 28
PHP Fatal error: Uncaught PDOException: could not find driver
Я боролся и боролся с «apt install php-mysql php7toInfinity и не забывал sqlite-what-ever’s» и просто не мог избавиться от этого сообщения об ошибке, пока не вернулся к основам и не сбросил разрешения для файлов на рассматриваемый веб-сайт.
Эти 3 команды сбрасывают права доступа к файлам и папкам на веб-сайте и заставляют его снова работать.
cd /var/www/web-site-name.com/web/
# find (sub) directories and change permissions
find . -type d -exec chmod 755 {} \;
# find files and change permissions
find . -type f -exec chmod 664 '{}' \;
Ответ 29
$DB_TYPE = 'mysql'; //Type of database<br>
$DB_HOST = 'localhost'; //Host name<br>
$DB_USER = 'root'; //Host Username<br>
$DB_PASS = ''; //Host Password<br>
$DB_NAME = 'database_name'; //Database name<br><br>
$dbh = new PDO("$DB_TYPE:host=$DB_HOST; dbname=$DB_NAME;", $DB_USER, $DB_PASS); // PDO Connection
Это сработало для меня.
Ответ 30
У меня было то же исключение при попытке использовать pdo_sqlite
. Проблема заключалась в том, что автоматически созданные символические ссылки 20-pdo_sqlite.ini
и 20-sqlite3.ini
(в /etc/php5/mods-enabled
) были сломаны.
Удаление сломанных символических ссылок и их добавление вручную:
-
sudo ln -s /etc/php5/mods-avaliable/pdo_sqlite.ini /etc/php5/mods-enabled/20-pdo_sqlite.ini
-
sudo ln -s /etc/php5/mods-avaliable/sqlite3.ini /etc/php5/mods-enabled/20-sqlite3.ini
исправлена проблема.
Примечание. Это не будет работать для старых версий php, поскольку они не искали configs в
/etc/php5/mods-enabled
# Проблема
Любая попытка взаимодействия с базой данной завершается ошибкой:
[Illuminate\Database\QueryException] could not find driver
PDOException(code: 0): could not find driver at /Illuminate/Database/Connectors/Connector.php
# Причина
В окружении не установлены или не подключены расширения для базы данных.
Посмотреть список установленных модулей можно командой php -m
# Решение
Установить расширение php-pdo и
php-mysql для MySQL
php-pgsql для PostgreSQL
php-sqlite для SQLite
Для конкретной версии, например, 8.1:
Или автоматически для текущей:
Возможно понадобится перезапуск web-сервера. Обычно больше ничего не требуется, но если модули по какой-то причине
не подключились автоматически, то можно активировать вручную:
# Решение для Windows
Для Windows смысл тот же,
необходимо скачать
dll в директорию ext с расширениями,
но скорей всего необходимые модули уже присутствуют в сборке,
осталось только их подключить в php.ini
Для этого необходимо удалить символ ; в начале строк: