gpt4 book ai didi

PHP - 我如何知道为什么 mssql_connect() 不起作用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:51:13 24 4
gpt4 key购买 nike

我使用的是 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;
}

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

最佳答案

//Database Connection by PDO (MS SQL Server, PHP)
$serverName='localhost';
$database='TreeDB';
$uid='sa';
$pwd='sa*5234';

$dbo = new PDO("sqlsrv:server=$serverName ; Database = $database;ConnectionPooling=0", $uid, $pwd);
//var_dump($dbo);

//Database Query
$sql = "SELECT node.id, node.name, COUNT(parent.id) - 1 AS depth, node.lft, node.rgt
FROM dbo.OrgTree AS node CROSS JOIN dbo.OrgTree AS parent
WHERE (node.lft BETWEEN parent.lft AND parent.rgt)
GROUP BY node.id, node.name, node.lft, node.rgt
ORDER BY node.lft";

//Execute Query
$sql = $dbo->prepare($sql);
$sql->execute();

$qry = $sql->fetchAll();
foreach ($qry as $fetch)
{
$tree[] = $fetch;
}

//print_r($tree);

关于PHP - 我如何知道为什么 mssql_connect() 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23405791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com