Laravel 5.7 не может подключиться к базе данных SQLSRV в Windows (не удалось найти драйвер) - PullRequest
0 голосов
/ 16 декабря 2018

Мой файл env

DB_CONNECTION=sqlsrv
DB_HOST=DESKTOP-ATB1EFG
DB_DATABASE=frontdesk
DB_USERNAME=sa
DB_PASSWORD=something_secret123
DB_PORT=1433

Я протестировал с сырым php, как показано ниже, он успешно подключен и возвращает "подключенную" строку.

serverName = "DESKTOP-ATB1EFG";
    $connectionOptions = array(
        "Database" => "frontdesk",
        "Uid" => "sa",
        "PWD" => "something_secret123"
    );
    //Establishes the connection
    $conn = sqlsrv_connect($serverName, $connectionOptions);
    if($conn){
        echo "Connected!";

    }else{
        echo "Failed";
    }

НО, когда я пытался выполнить миграцию с использованием php artisan migrate , он возвращает QueryExeption

не удалось найти драйвер (SQL: select * from sysobjectsгде тип = 'U' и имя = миграция)

Трассировка исключения:

1 PDOException: :( "не удалось найти драйвер")

C: \ wamp64 \ www \ frontdesk.sys \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Connectors \ Connector.php: 70

2
PDO :: __ construct ("dblib: host =DESKTOP-ATB1EFG: 1433; dbname = frontdesk; charset = utf8 "," sa ", "thing_secret123", []) C: \ wamp64 \ www \ frontdesk.sys \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Connectors\ Connector.php: 70

Я проверил с php 7.2.10, он уже включает расширения

extension=php_sqlsrv_72_nts_x64.dll
extension=php_pdo_sqlsrv_72_nts_x64.dll
extension=php_sqlsrv_72_ts_x64.dll
extension=php_pdo_sqlsrv_72_ts_x64.dll

php.ini extensions

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Я исправил проблему, добавив расширения:

extension=php_pdo_sqlsrv_71_ts_x64.dll
extension=php_sqlsrv_71_ts_x64.dll

в обе папки php.ini в php7.1.22 и php.ini в apache .

Спасибо.

0 голосов
/ 16 декабря 2018

В настоящее время laravel поддерживает

MySQL
PostgreSQL
SQLite
SQL Server

Если вы используете какой-либо из них, просто следуйте совету

Откройте файл .env, и вы найдете кучу переменных

и в этом вы найдете эти

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

EG: просто замените DB_CONNECTION на вашу текущую базу данных, такую ​​как SQLite

и заполните свои учетные данные и имя пользователя, имя базы данных

См. Поддерживаемую базу данных здесь https://laravel.com/docs/5.7/database#introduction

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