Laravel с mssql (sqlsrv) не подключается

Я работал над laravel с mysql, он работал нормально. Но у меня сейчас другой сценарий. Мне нужно подключить laravel к базе данных ms sql, которая находится на сервере Windows. Я использовал следующий код для подключения к БД app/config/database.php

'default' => 'sqlsrv',

'sqlsrv' => array(
        'driver'   => 'sqlsrv',
        'host'     => 'IP ADDRESS',
        'database' => 'DB Name',
        'username' => 'Username',
        'password' => 'password',
        'prefix'   => '',
    ),

но он показывает ошибку, говорящую, что

PDOException не удалось найти драйвер

Итак, пожалуйста, может ли кто-нибудь помочь мне решить эту проблему? Спасибо


person Nagesh Acharya    schedule 04.04.2015    source источник
comment
Может быть, это поможет вам: - laravel.io/forum/   -  person Anant Kumar Singh    schedule 04.04.2015
comment
Но мне нужно настроить sqlsrv. В ссылке они объяснили про odbc. Это драйвер отсутствует в моем проекте?   -  person Nagesh Acharya    schedule 04.04.2015
comment
Да, я думаю, что драйвер отсутствует.   -  person Anant Kumar Singh    schedule 04.04.2015
comment
Возможный дубликат сервер соединения Laravel MSSqL работает с cli , но не в браузере   -  person davejal    schedule 04.06.2017


Ответы (3)


Вы используете усадьбу? У меня была точно такая же проблема с использованием MAMP. Драйвер отсутствовал на моем сервере, поэтому я переключился на homestead и установил там freetds.

person vasco_silva    schedule 29.03.2016

Для Linux homestead: во-первых, подключитесь по ssh к своей машине vagrant ssh из папки Homestead.

Команда: бродяга ssh

Установите пакет Sybase, чтобы включить поддержку PDO и Mssql. Команда: sudo apt-get установить php7.0-sybase

затем запустите php -m на ssh, чтобы убедиться, что pdo_dblib включен.

Для Windows: вам необходимо установить это расширение вручную. Драйвер можно загрузить с [веб-сайта Microsoft][1].

После извлечения файлов скопируйте их в каталог ext вашего PHP. Чтобы заставить PHP загружать расширение, просто добавьте следующую строку в ваш PHP.ini (это для версии PHP, не поддерживающей потоки, которую вы, скорее всего, используете, когда установили PHP для использования IIS FastCGI, что мы рекомендуем) :

расширение = php_sqlsrv.dll

И перезапустите Apache

person AmitChaudhary    schedule 06.04.2016

Чтобы расширить ответ @AmitChaudhary:

Для Mac OSX с использованием MAMP

  1. Загрузите и установите необходимые компоненты с помощью Homebrew (самый простой вариант):
    FreeTDS: brew install freetds
    autconf: brew install autoconf

  2. Загрузите исходный код версии PHP (я использовал 5.6.27): http://php.net/releases/

  3. Извлеките исходный код, откройте терминал и перейдите в папку в командной строке.

  4. (Необязательно) Временно добавьте установку PHP вашего MAMP в путь:
    export PATH=/Applications/MAMP/bin/php/php5.6.27/bin:$PATH

Убедитесь, что вы изменили номер версии на то, что вы используете.

  1. Введите which phpize, чтобы подтвердить, что он использует PHP вашей установки MAMP.

  2. Настройте и сделайте загруженный исходный код PHP:
    ./configure --without-iconv && make

  3. Перейдите в папку Extensions загруженного исходного кода PHP:
    cd ext

  4. Перейдите в папку расширения MSSQL:
    cd mssql

  5. Беги phpize

  6. Настройте расширение с помощью FreeTDS:
    ./configure --with-mssql=/usr/local/Cellar/freetds/1.00.23/ && make

Подтвердите, что это ваша правильная версия FreeTDS, она выдаст вам ошибку, если не сможет ее найти.

  1. Перейдите в папку «Модули»:
    cd modules

  2. Скопируйте модуль mssql.so в папку расширений вашего MAMP (для меня это было) по адресу:
    cp mssql.so /Applications/MAMP/bin/php/php5.6.27/lib/php/extensions/no-debug-non-zts-20131226/

  3. В MAMP найдите пункт меню «Редактировать шаблоны» (в зависимости от версии MAMP он должен быть в меню MAMP или доступен в MAMP Pro с помощью кнопки)

  4. Найдите ; Extensions и внизу этого раздела добавьте:
    extension=mssql.so

  5. Перезапустите сервер MAMP Apache, и все готово!

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

Здоровья ГБ.

person Jamie Poole    schedule 20.12.2016