【问题标题】:PHP - How do I tell why mssql_connect() didn't work?PHP - 我如何判断为什么 mssql_connect() 不起作用?
【发布时间】:2014-05-01 10:17:27
【问题描述】:

我使用的是 PHP 5.2,通常mssql_connect 工作正常 - 但我正在尝试连接到新的 MS SQL 服务器,但它无法连接。我的连接详细信息或凭据可能有问题,但我无法确定,因为我无法收到错误消息。

mssql_connect() 方法返回false,没有可用的连接。

mssql_get_last_message() 什么都不返回 - 那么我该如何判断我的连接失败的原因?

有人有什么想法吗?

在 MySQL 中,我会使用 mysql_error - 但似乎没有 ms_sql 的等价物。

[编辑]

这个问题不是“MSSQL_CONNECT returns nothing - no error but no response either”的重复 - 我使用的是 php 5.2,并且代码适用于其他连接细节。我需要弄清楚如何输出连接错误——而不是连接的问题。

[EDIT2]

澄清一下:

  • 在服务器上启用了扩展
  • 代码适用于现有的连接详细信息
  • 我正在使用新的连接详细信息,不知道主机名或密码是否错误
  • 我知道代码未连接,因为我检查它是否已连接
  • 我想找出连接错误 - 就像使用 MySQL 一样。

示例代码如下:

    $db_connection = mssql_connect($host, $user, $pass);

    $db = mssql_select_db($dbname, $db_connection);
    if (!$db_connection) {
        echo "No connection";
        echo "connection failed because: " . ???????;
        die;
    }

我应该用什么代替 ??????? 来获取连接错误消息?

【问题讨论】:

标签: php sql-server


【解决方案1】:

见下文

<?php
// Server in the this format: <computer>\<instance name> or 
// <server>,<port> when using a non default port number
$server = 'KALLESPC\SQLEXPRESS';

// Connect to MSSQL
$link = mssql_connect($server, 'sa', 'phpfi');

if (!$link) {
die('Something went wrong while connecting to MSSQL');
}
?>

这样,如果连接失败,您可以显示错误。

参考:http://www.php.net/manual/en/function.mssql-connect.php

【讨论】:

  • 谢谢 - 但这只会告诉我失败了 - 我已经有了。我需要知道什么失败了。尝试连接返回的实际错误 - 否则我不知道我做错了什么。
  • 您是否在 php.ini 文件中启用了 mssql 扩展?
  • 是的。请阅读我的问题。该代码适用于其他连接 - 我只需要使用一些新的连接细节。我不知道连接的哪一点是错误的,因为它没有告诉我主机名是否错误或用户名是否错误 - 我需要连接错误。
  • 试试这个 if (!$query) { die('MSSQL error: ' . mssql_get_last_message());}
  • 谢谢 - 我做到了(如我的问题中所述) - mssql_get_last_message() 什么也不返回
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-25
  • 1970-01-01
  • 2017-12-12
  • 2018-05-14
  • 2012-10-07
  • 1970-01-01
相关资源
最近更新 更多