Подтвердить что ты не робот

Как подключиться к 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 Support   enabled
Active Persistent Links     0
Active Links    1
Library version     FreeTDS

Directive   Local Value Master Value
mssql.allow_persistent  On  On
mssql.batchsize 0   0
mssql.charset   no value    no value
mssql.compatability_mode    Off Off
mssql.connect_timeout   5   5
mssql.datetimeconvert   On  On
mssql.max_links Unlimited   Unlimited
mssql.max_persistent    Unlimited   Unlimited
mssql.max_procs Unlimited   Unlimited
mssql.min_error_severity    10  10
mssql.min_message_severity  10  10
mssql.secure_connection Off Off
mssql.textlimit Server default  Server default
mssql.textsize  Server default  Server default
mssql.timeout   60  60
4b9b3361

Ответ 2

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

Мне нужно было запустить:

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

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

Ответ 3

Попробуйте

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

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

ИЛИ

$hostname.','.$port;

Ответ 4

Подсказка по расширению PHP dblib/sybase, опубликованная Карлом Уилбуром, сработала для меня. На странице проверки перед установкой LimeSurvey теперь отображается

Драйвер PHP PDO library- Microsoft SQL Server (dblib), MySQL

Просто убедитесь, что вы нашли и установите версию, соответствующую версии PHP, которую вы используете;

Prompt>sudo apt-get install php<appropriate version>-sybase freetds-common libsybdb5 Prompt>sudo apache2ctl restart

Ура,