Сервер PDO MSSQL - Водитель не найден


В настоящее время я пытаюсь подключиться к своей локальной базе данных на MSSQL 2012 Express.

Я скачал и установил официальный драйвер Microsoft с http://www.microsoft.com/en-us/download/details.aspx?id=20098

Я получаю какой-то раздел SQLSRV в своем phpinfo(). Но когда я пытаюсь создать новый объект PDO, он говорит, что у него нет драйвера. Что я мог понять, так как это не упоминается в разделе PDO phpinfo(), но у него есть свой собственный раздел + get_loaded_extensions также показывает sqlsrv. Я полагаю, это от официального драйвера MS? Я использую php_sqlsrv_53_nts.dll С моим сервером Zend CE 5.6 с PHP 5.3.9

Теперь, насколько я понял, я скачал не тот драйвер и должен попробовать тот, который принес менеджер PECL? Доступен только исходный код, и, очевидно, я нахожусь на компьютере с Windows, поэтому я могу забыть обо всем, что мне нужно скомпилировать самостоятельно - на самом деле я получаю ошибки суффикса при использовании powershell и моя установка pecl/pear.

Кто-нибудь решил эту проблему? Любая помощь очень ценится

Всего наилучшего, Ричард

Author: Richard, 2012-06-28

3 answers

Расширение PDO не совпадает с собственным драйвером, предлагаемым Microsoft. Для PDO вы должны включить

extension=php_pdo_mssql.dll

В вашем php.ini.

Обычно этот файл (php_pdo_mssql.dll ) должно быть в вашем каталоге расширений PHP (C:...\php\ext). Если его там нет, вы можете скачать PHP с http://windows.php.net/download / и просто возьмите расширение из пакета там (возьмите, конечно, то, которое соответствует вашей версии PHP).

//редактировать: просто прочитайте последнюю версию комментарий. Это расширение доступно уже очень давно и может считаться работающим. Если вам не разрешено его использовать, вы должны переписать свой код, чтобы использовать функции, предлагаемые собственным драйвером для PHP.

 2
Author: Martin Müller, 2012-06-28 14:06:34

Другая возможность - использовать драйверы odbc, которые по умолчанию включены в расширения php, однако вам все равно может потребоваться раскомментировать их в вашем php.ini.

extension=php_pdo_odbc.dll

Не забудьте перезапустить свой сервер после этого;-)

А затем используйте его вот так:

$db = new PDO('odbc:Driver={SQL Server};Server=192.168.x.x;Database=DatabaseName; Uid=User;Pwd=Password');
$stmt = $db->query("SELECT the_usual FROM aTable WHERE all='well'");
 1
Author: Levit, 2014-04-29 08:06:21

Хорошо. Я полагаю, что это всего лишь один из таких дней.

Я получил неправильный добавочный номер, загруженный из предоставленных MS. Мне нужно было использовать php_pdo_sqlsrv_53_nts скорее, чем php_sqlsrv_53_nts

Спасибо за всю помощь

 0
Author: Richard, 2012-06-28 14:07:41