Подключение к mssql с помощью pdo через php и linux


Я пытаюсь установить новое PDO-соединение, используя следующий код.

new PDO("mssql:driver=????;Server={$serverName};Database={$databaseName}", $username, $password, array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

Я не уверен, какие драйверы использовать? или как их установить. Я прекрасно могу подключиться, используя функцию mssql_connect в PHP, но вместо этого я хочу использовать библиотеку PDO.

Пожалуйста, дайте мне знать, если у вас есть идеи о том, как решить мою проблему или как я могу лучше сформулировать свой вопрос?

Мои настройки php.ini для mssql следующие:

Ssql

Поддержка MSSQL включено
Активные постоянные ссылки 0
Активные ссылки 1
Бесплатная версия библиотеки

Директивное Локальное значение Мастер-значение
mssql.allow_persistent Вкл Вкл
mssql.размер пакета 0 0
mssql.кодировка без значения без значения
mssql.compatability_mode Отключен Выключен
mssql.connect_timeout 5 5
mssql.datetimeconvert Вкл Вкл
mssql.max_links Неограниченный Неограниченный
mssql.max_persistent Неограниченный Неограниченный
mssql.max_procs (mssql.max_procs) Неограниченный Неограниченный
mssql.min_error_северность 10 10
mssql.min_message_северность 10 10
mssql.secure_connection выключен Выключен
mssql.textlimit Сервер по умолчанию Сервер по умолчанию
mssql.textsize Сервер по умолчанию Сервер по умолчанию
mssql.тайм-аут 60 60

Спасибо

Author: richie, 2011-05-10

3 answers

Драйвера PDO mssql больше нет, используйте sqlsrv (под windows php) или dblib (под linux php)

Http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx

Http://www.php.net/manual/en/ref.pdo-dblib.php

 31
Author: James, 2013-09-04 18:02:45

Я запускаю Ubuntu 14.04. При попытке подключиться к MSSQL я получил "Неперехваченное исключение "PDOException" с сообщением "не удалось найти драйвер"". Похоже, мне не хватало расширения PHP dblib/sybase.

Мне пришлось бежать:

sudo apt-get install php5-sybase freetds-common libsybdb5 \ 
&& sudo apache2ctl restart

Теперь работает нормально.

 4
Author: Karl Wilbur, 2015-05-31 22:59:27

Попробуйте

$dbh = new PDO ("mssql:host=$hostname;dbname=$dbname","$username","$pw");

$hostname may need to be configured as either...
$hostname.':'.$port;

ИЛИ

$hostname.','.$port;
 1
Author: csi, 2011-05-10 17:28:17