Ошибка sybase_connect() — «Не удается подключиться: адаптивный сервер недоступен или не существует»

#php #sql-server #xampp #freetds

#php #sql-сервер #программе XAMPP #freetds #xampp

Вопрос:

При попытке подключиться к SQLServer с помощью sybase_connect() я получаю следующие ошибки:

Из командной строки: $> php test.php

Неустранимая ошибка: неперехваченная ошибка: вызов неопределенной функции sybase_connect() в test.php:7

Запуск скрипта через XAMPP:

Предупреждение: sybase_connect(): Sybase: Сообщение клиента: Не удается подключиться: Адаптивный сервер недоступен или не существует (серьезность 78) в test.php в строке 7

Предупреждение: sybase_connect(): Sybase: Не удается подключиться в test.php в строке 7

Неустранимая ошибка: вызов неопределенной функции error() в test.php в строке 7

Вот мой код:

 <?php

$server = 'server.domain.com';
$username = 'user';
$password = 'pwd';

$sqlconnect = sybase_connect($server, $username, $password, 'UTF-8') or error('connect');

  

Я запускаю XAMPP на Mac OS, PHP 5.6.

Я попытался подключиться к серверу через tsql в командной строке, и это действительно работает (с указанием порта и без него):

  tsql -S server.domain.com -U user 
 tsql -S server.domain.com -U user -p 1433
  

Я пытался активировать расширение для sybase на php.ini, но все еще получаю ту же ошибку:

 extension=php_sybase_ct.dll
  

Я также попробовал несколько случайных действий из ответов stackoverflow, но, честно говоря, я здесь полностью заблудился.

Комментарии:

1. sql-server Тег обозначает Microsoft SQL Server. Удалите его, если вы используете Sybase.

2. Как указано в документации, sybase_connect открывает соединение с сервером Sybase, а не sql Server.

3. @DanGuzman похоже, что расширение sybase также можно использовать для подключения к MS SQL Server. На самом деле он настроен таким образом в производственной среде, которую я пытаюсь реплицировать (используя sybase для обеспечения безопасных подключений), но, к сожалению, я не нашел никакой документации о том, как настроить sybase в моей локальной среде для подключения к SQL Server. Для подключения к SQL Server.

Ответ №1:

AFAIK, sybase* функции могли подключаться только к более старым версиям SQL Server и были удалены в PHP 7.0, который скоро станет единственной доступной безопасной версией.

Я бы посоветовал использовать PHP sqlsrv_connect() :https://www.php.net/manual/en/function.sqlsrv-connect.php … или PDO: https://www.php.net/manual/en/pdo.construct.php

Удачи!

Комментарии:

1. Спасибо FlipperPa, мы собираемся изучить вариант sqlsrv_connect, как вы предлагаете