sybase_connect() 错误 - “无法连接:Adaptive Server 不可用或不存在”
Posted
技术标签:
【中文标题】sybase_connect() 错误 - “无法连接:Adaptive Server 不可用或不存在”【英文标题】:sybase_connect() Error - "Unable to connect: Adaptive Server is unavailable or does not exist" 【发布时间】:2019-08-23 15:36:31 【问题描述】:尝试使用 sybase_connect() 连接到 SQLServer 时,我收到以下错误:
从命令行: $> php test.php
致命错误:未捕获错误:调用 test.php:7 中未定义的函数 sybase_connect()
通过 XAMPP 运行脚本:
警告:sybase_connect():Sybase:客户端消息:无法连接:Adaptive Server 不可用或在第 7 行的 test.php 中不存在(严重性 78)
警告:sybase_connect(): Sybase: Unable to connect in test.php on line 7
致命错误:在第 7 行的 test.php 中调用未定义函数 error()
这是我的代码:
<?php
$server = 'server.domain.com';
$username = 'user';
$password = 'pwd';
$sqlconnect = sybase_connect($server, $username, $password, 'UTF-8') or error('connect');
我在 Mac OS,PHP 5.6 上运行 XAMPP。
我尝试在命令行上通过 tsql 连接到服务器,它确实有效(有和没有指定端口):
tsql -S server.domain.com -U user
tsql -S server.domain.com -U user -p 1433
我尝试在 php.ini 上激活 sybase 的扩展,但仍然遇到同样的错误:
extension=php_sybase_ct.dll
我还从 *** 的答案中尝试了一些随机的东西,但老实说,我完全迷路了。
【问题讨论】:
sql-server
标记表示 Microsoft SQL Server。如果您使用的是 Sybase,请将其删除。
如文档所述,sybase_connect 打开与 Sybase 服务器的连接,而不是 sql 服务器。
@DanGuzman 看来sybase 扩展也可以用来连接MS SQL Server。它实际上是在我试图复制的生产环境中以这种方式配置的(使用 sybase 允许安全连接),但不幸的是,我还没有找到任何关于如何在本地环境中配置 sybase 以连接到 SQL 的文档服务器。
【参考方案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
祝你好运!
【讨论】:
感谢 FlipperPa,我们将按照您的建议探索 sqlsrv_connect 选项以上是关于sybase_connect() 错误 - “无法连接:Adaptive Server 不可用或不存在”的主要内容,如果未能解决你的问题,请参考以下文章