Я пытаюсь настроить свой веб-сервер QNAP TS-231P для подключения к базе данных MS SQL, установленной на сервере Windows (MSSQL Express 2014).
В панели управления QNAP -> Server Web я добавил в файл php.ini эту строку
extension = mssql.so
и теперь работает phpinfo (), я вижу раздел mssql (версия библиотеки FreeTDS).
Мое веб-приложение, построенное на CodeIgniter 3.1.9, не может подключиться к MSSQL (оно работает на XAMPP версии 3.2.2, установленной в Windows), я также попробовал этот простой код php:
<?php
$connection = mssql_connect('10.10.10.100\SQLEXPRESS', 'sa', 'mypassword');
if (!$connection) {
die('Unable to connect!');
}
if (!mssql_select_db('MY_DATABASE', $connection)) {
die('Unable to select database!');
}
$result = mssql_query('SELECT * FROM MY_TABLE');
while ($row = mssql_fetch_array($result)) {
var_dump($row);
}
mssql_free_result($result);
?>
но соединение не удается.
Вопрос в том, что я могу сделать для успешного подключения?
На основании информации от php.net:
mssql_connect
Предупреждение
Эта функция была УДАЛЕНА в PHP 7.0.0.
Вместо этого вы должны использовать sqlsrv_connect:
Чтобы иметь возможность подключиться к MS SQL Server, этот сервер должен принимать удаленные подключения. Увидеть: Настройте опцию конфигурации сервера удаленного доступа
Когда вы используете IP, вы должны указать номер порта, на котором MS SQL Server прослушивает удаленные соединения.
<?php
$serverName = "serverName\\sqlexpress, 1542"; //serverName\instanceName, portNumber (default is 1433)
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
?>
Подробнее о подключении к MS SQL Server в этой теме: Как использовать PHP для подключения к серверу SQL
Удачи!
Других решений пока нет …