Я работал на 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
не смог найти водителя
Так что, пожалуйста, кто-нибудь может помочь мне решить это?
Спасибо
Вы используете усадьбу?
У меня была точно такая же проблема с использованием MAMP. Драйвер отсутствовал на моем сервере, поэтому я перешел на ферму и установил FreeTDS там.
Для 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
Чтобы расширить ответ @ AmitChaudhary:
Для Mac OSX с использованием MAMP
Загрузите и установите предварительные требования, используя Homebrew (самый простой вариант):
FreeTDS: brew install freetds
autconf: brew install autoconf
Загрузите исходный код версии PHP (я использовал 5.6.27): http://php.net/releases/
Извлеките источник, откройте терминал и перейдите в папку в командной строке
(Необязательно) Временно добавьте установку PHP MAMP в путь:
export PATH=/Applications/MAMP/bin/php/php5.6.27/bin:$PATH
Убедитесь, что вы изменили номер версии на тот, который вы используете.
Тип which phpize
чтобы подтвердить, что он использует PHP вашей установки MAMP
Сконфигурировать и сделать скачанный исходный код PHP:
./configure --without-iconv && make
Перейдите в папку Extensions загруженного источника PHP:
cd ext
Перейдите в папку расширения MSSQL:
cd mssql
Бежать phpize
Настройте расширение с помощью FreeTDS:
./configure --with-mssql=/usr/local/Cellar/freetds/1.00.23/ && make
Убедитесь, что это ваша правильная версия FreeTDS, она выдаст вам ошибку, если не сможет ее найти.
Перейдите в папку «Модули»:
cd modules
Скопируйте mssql.so
модуль в папку расширений вашего MAMP (для меня это было) по адресу:
cp mssql.so /Applications/MAMP/bin/php/php5.6.27/lib/php/extensions/no-debug-non-zts-20131226/
В MAMP найдите пункт меню Edit Templates (в зависимости от того, какая версия MAMP должна быть в меню MAMP или доступна в MAMP Pro с помощью кнопки)
найти ; Extensions
и в нижней части этого раздела добавить:
extension=mssql.so
Перезапустите сервер MAMP Apache, и все будет хорошо!
Я буквально только что сделал это, но изо всех сил пытался найти достойное прохождение для работы моей памяти, так что, надеюсь, это поможет кому-то другому (или, вероятно, мне) в будущем.
ура
GB.