Подключение к mssql с использованием pdo через php и linux - PullRequest
25 голосов
/ 10 мая 2011

Я пытаюсь установить новое соединение 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
Библиотечная версия FreeTDS

Директива Local Value Master Value
mssql.allow_persistent On On
mssql.batchsize 0 0
mssql.charset нет значения нет значения
mssql.compatability_mode Выкл. Выкл.
mssql.connect_timeout 5 5
mssql.datetimeconvert On On
mssql.max_links Неограниченно Неограниченно
mssql.max_persistent Неограниченный Неограниченный
mssql.max_procs Неограниченно Неограниченно
mssql.min_error_severity 10 10
mssql.min_message_severity 10 10
mssql.secure_connection Выкл. Выкл.
mssql.textlimit Сервер по умолчанию Сервер по умолчанию
mssql.textsize Сервер по умолчанию Сервер по умолчанию
mssql.timeout 60 60

Спасибо

Ответы [ 4 ]

31 голосов
/ 11 мая 2011

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

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

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

4 голосов
/ 14 января 2015

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

Мне нужно было выполнить:

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

Работает нормально.

1 голос
/ 10 мая 2011

Попробуйте

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

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

ИЛИ

$hostname.','.$port;
0 голосов
/ 01 ноября 2018

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

Библиотека драйверов PHP PDO - Microsoft SQL Server (dblib), MySQL

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

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

Приветствия

...