Подключение к 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
Спасибо
3 answers
Драйвера PDO mssql больше нет, используйте sqlsrv
(под windows php) или dblib
(под linux php)
Я запускаю Ubuntu 14.04. При попытке подключиться к MSSQL я получил "Неперехваченное исключение "PDOException" с сообщением "не удалось найти драйвер"". Похоже, мне не хватало расширения PHP dblib/sybase.
Мне пришлось бежать:
sudo apt-get install php5-sybase freetds-common libsybdb5 \
&& sudo apache2ctl restart
Теперь работает нормально.
Попробуйте
$dbh = new PDO ("mssql:host=$hostname;dbname=$dbname","$username","$pw");
$hostname may need to be configured as either...
$hostname.':'.$port;
ИЛИ
$hostname.','.$port;