Ответ 1
Драйвер PDO mssql больше не используется, используйте sqlsrv
(под php-окнами) или dblib
(под 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
Драйвер PDO mssql больше не используется, используйте sqlsrv
(под php-окнами) или dblib
(под php linux)
Я запускаю Ubuntu 14.04. Пытаясь подключиться к MSSQL, я получил "Uncaught exception" PDOException с сообщением "не удалось найти драйвер". Кажется, что я отсутствовал расширение dblib/sybase PHP.
Мне нужно было запустить:
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;
Подсказка по расширению PHP dblib/sybase, опубликованная Карлом Уилбуром, сработала для меня. На странице проверки перед установкой LimeSurvey теперь отображается
Просто убедитесь, что вы нашли и установите версию, соответствующую версии PHP, которую вы используете;
Prompt>sudo apt-get install php<appropriate version>-sybase freetds-common libsybdb5
Prompt>sudo apache2ctl restart
Ура,