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
не смог найти водителя

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

2

Решение

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

4

Другие решения

Для Linux Усадьба:
Во-первых, 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

1

Чтобы расширить ответ @ 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 найдите пункт меню Edit Templates (в зависимости от того, какая версия MAMP должна быть в меню MAMP или доступна в MAMP Pro с помощью кнопки)

  4. найти ; Extensions и в нижней части этого раздела добавить:

    extension=mssql.so

  5. Перезапустите сервер MAMP Apache, и все будет хорошо!

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

ура
GB.

0
По вопросам рекламы [email protected]