【问题标题】:Unable to connect to mssql server from php using mssql_connect无法使用 mssql_connect 从 php 连接到 mssql 服务器
【发布时间】:2016-06-20 05:19:32
【问题描述】:

我有 MySql 数据库,我在 MSSQL 中有主数据库。所以为了访问 MSSQl,我安装了 PHP MSSQL 驱动程序并使用以下代码从 php 连接到 MSSQL 服务器

$server = "myip";
$dbname = "mydbname";
$dbuser = "myusername";
$dbpass = "mypassword";
$link = mssql_connect($server, $dbuser, $dbpass);

if (!$link) {
    die('Unable to connect!');
}
if (!mssql_select_db('mydbname', $link)) {
    die('Unable to select database!');
}

最初 2-3 个月它可以连接。但突然我们无法连接到 mssql 服务器。

我试图记录这个连接是否可以给出任何错误消息。但它没有给出任何错误消息。我的服务器人员从我的 php mysql 服务器告诉他们根本没有收到任何请求,他们说问题出在我的结局。请帮助我能做些什么。

更新:-

我已经缩小了问题的范围。我有 6 个 mssql 服务器,其中 6 个 3 个已连接,3 个未连接。连接的没有Service Pack,没有连接的有Service Pack安装在服务器上。

那么我怎样才能连接到安装了服务器包的服务器。

谢谢

【问题讨论】:

  • 你的 PHP 版本是多少?
  • 您是在服务器上还是在本地主机上运行此代码?
  • 我在服务器上运行它,这在 2-3 个月内运行良好,但突然从最近 10 天开始连接无法完成。
  • 然后使用 localhost 可能与 $server 参数中的端口。此外,根据PHP Doc mssql 在 Windows 上不可用“此扩展在具有 PHP 5.3 或更高版本的 Windows 上不再可用。”
  • 我的服务器是 ubuntu 服务器,我可以在文档中看到 mssql_connect 已从 7.0 中删除。

标签: php mysql sql-server


【解决方案1】:

尝试使用PDO 进行连接,看看是否可行,或者它是否为您提供了有关可能的网络或身份验证问题的更多信息。

$dsn = 'mssql:dbname=' . $dbname . ';host=' . $server;

try {
    $dbh = new PDO($dsn, $dbuser, $dbpass);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage(); 
}

mssql 包已弃用,以后将无法使用,所以无论如何建议使用其他库,请参阅http://php.net/manual/en/function.mssql-connect.php

【讨论】:

  • 是 mysql:dbname 还是 mssql:dbname ?
  • 应该是'mssql'(我刚刚更正了),我的浏览器自动更正它为'mysql' ;-)
  • 我的 php 版本是 5.5.9,我可以看到 mssql_connect 在 7 中已弃用。所以这应该可以正常工作
  • 是的,应该。我建议 PDO 只是为了尝试获取更多信息,为什么您的连接不起作用,因为它可能比旧的 mssql 驱动程序提供更多信息。只是建议以后使用 PDO。
  • 在哪里可以查看连接日志?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-22
  • 1970-01-01
  • 1970-01-01
  • 2016-09-01
相关资源
最近更新 更多