ошибка «не удалось найти драйвер» для команды «new PDO ()», PHP 7.0.25 - PullRequest
0 голосов
/ 03 февраля 2019

Я не могу использовать «новый PDO ()», так как я получаю это сообщение об ошибке «не могу найти драйвер».Я использую hostgator, и работал с ними интенсивно, но безрезультатно.

Я обновил свою версию PHP до 7.0.25, проверил настройки php.ini по умолчанию (hostgator использует файл php.ini по умолчанию для печенья для всех своих клиентов ... если вы не создадите свой собственныйфайл php.ini, в этом случае пользовательская версия переопределяет).Я просмотрел свои результаты phpinfo (), и все выглядит хорошо (если я что-то упустил).Я включил свой сценарий и фрагменты моих настроек файла php.ini и результатов phpinfo ().

Настройки файла PHP.ini:

[Pdo];Нужно ли объединять ODBC-соединения.Может быть «строгим», «расслабленным» или «выключенным»;http://php.net/pdo-odbc.connection-pooling; pdo_odbc.connection_pooling = строгий

; pdo_odbc.db2_instance_name

[Pdo_mysql];Если используется mysqlnd: Количество слотов кеша для внутреннего кеша результирующих наборов;http://php.net/pdo_mysql.cache_size pdo_mysql.cache_size = 2000

;Имя сокета по умолчанию для локальных подключений MySQL.Если пусто, использует встроенный;MySQL по умолчанию.;http://php.net/pdo_mysql.default-socket pdo_mysql.default_socket =

phpinfo () результаты:

Драйверы PDO: mysql, sqlite

Версия API клиента: 5.6.41-84.1

Директива: pdo_mysql.default_socket

Локальное значение: /var/lib/mysql/mysql.sock

Основное значение: /var/lib/mysql/mysql.sock

<?php

$host = "localhost";
$user = "ABC";
$pw = "123";
$dbName = "XYZ";
$dsn = 'msql:host=' . $host . ';dbname=' . $dbName;
$pdo = new PDO($dsn,$user,$pw); // this is the line that the error refers to

$eml = $_POST['data'];
$newPassword = $_POST['data1'];
$cnewPassword = $_POST['data2'];
$query = $pdo->query("SELECT * FROM accounts WHERE email = $eml") or die(mysql_error());
$row = $query->fetch(PDO::FETCH_ASSOC);


            if($row > 0) {
                echo "GOOD";
            } else {
                echo "BAD";
            }; 

?>

Я должен получить эхо "ХОРОШО", но все, что я продолжаю получать, это ошибка "Не удалось найти драйвер".Одна важная вещь, чтобы отметить;Я заметил, что версия PHP, которую hostgator использовал для обновления, была версией NON THREAD SAFETY ... hostgator использует серверы APACHE, и я узнал, что с серверами APACHE будут работать только версии THREAD SAFE.Это может быть проблемой, но не уверен на 100 процентов.Буду очень признателен за любой вклад / совет!

1 Ответ

0 голосов
/ 08 июля 2019

Основная синтаксическая ошибка:

// $dsn = 'msql:host=' . $host . ';dbname=' . $dbName;<br>
   $dsn = 'mysql:host=' . $host . ';dbname=' . $dbName;<br>

(msql вместо mysql).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...