Работа с MSSQL из PHP

Для корректной загрузки бинарных данных необходимо исправить конфигурацию, увеличив лимит с 4096 до 2147483647.

php.ini
mssql.textlimit = 2147483647
mssql.textsize = 2147483647

Подключение, выбор базы данных и получение результатов

$servername = 'server.name';
$username = 'username';
$password = 'password';
 
$link = mssql_connect($servername, $username, $password);
 
mssql_select_db('DBNAME', $link);
 
$resp = mssql_query('SELECT * FROM Table');
while($row = mssql_fetch_assoc($resp)) {
  echo var_dump($row).PHP_EOL;
}
mssql_free_result($resp);
  • mssql_fetch_object - в виде объекта

Экранирование

Аналог addslashes и mysql_real_escape_string:

mssql_escape.php
function mssql_escape($data) {
  if (!isset($data) or empty($data)) return '';
  if (is_numeric($data)) return $data;
 
  $non_displayables = array(
    '/%0[0-8bcef]/',            // url encoded 00-08, 11, 12, 14, 15
    '/%1[0-9a-f]/',             // url encoded 16-31
    '/[\x00-\x08]/',            // 00-08
    '/\x0b/',                   // 11
    '/\x0c/',                   // 12
    '/[\x0e-\x1f]/'             // 14-31
  );
  foreach ( $non_displayables as $regex )
    $data = preg_replace($regex, '', $data);
  $data = str_replace("'", "''", $data);
  return $data;
}