AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 401996
Accepted
Ryan
Ryan
Asked: 2012-06-26 04:52:26 +0800 CST2012-06-26 04:52:26 +0800 CST 2012-06-26 04:52:26 +0800 CST

无法让 mssql 与 sql server 2005 一起工作

  • 772

我是 MySQL/Apache 用户,正在尝试使用 IIS 和 SQL 服务器,如果这是一个愚蠢的问题,请耐心等待。

我正在使用 IIS 7.5 版。PHP 5.3.13 版和 SQL Server 2005 IIS 在端口 90 上运行,不确定这是否会产生影响。我知道我的 sql server 正在运行,因为我可以在 Server management studio 中探索/连接到它。

我知道 php 配置正确,因为 //localhost:90/phpinfo.php 工作正常。

我将 phpinfo 中的 php_msql.dll 扩展更新为:extension=ext/php_msql.dll

编辑-但是,当我在“配置命令”行下运行 phpinfo() 时,会出现:--without-mssql

我找到/下载了 ntwdblib.dll 并将其放在 sys32 和 php 根目录中。

所有这些事情都应该解决这个问题,但他们没有。

这是我正在使用的代码,直接来自 php.net:

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

// Connect to MSSQL
$link = mssql_connect($server, 'uname', 'pwd');

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

显然我使用的是真实的用户名和密码,但是当我在浏览器中加载文件时,我收到了 500 错误。检查日志后,显示如下:

2012-06-25 12:41:29 ::1 GET /test.php - 90 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/536.5+(KHTML,+like+Gecko )+Chrome/19.0.1084.56+Safari/536.5 500 0 0 5

那(对我来说)对我帮助不大。我究竟做错了什么?

谢谢

sql-server-2005 php iis-7.5
  • 2 2 个回答
  • 1474 Views

2 个回答

  • Voted
  1. ZnArK
    2012-06-26T05:55:56+08:002012-06-26T05:55:56+08:00

    尝试将实例名称附加到服务器名称。下面从http://php.net/manual/en/function.mssql-connect.php抓取

    <?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');
    }
    ?>
    

    编辑

    另外,验证以下内容:

    • 确保您已设置具有“SQL SERVER 身份验证”且有权连接的用户
    • 还要确保在安装后仍然有问题运行 PHPinfo 并检查是否找到以下内容:

      • PHP 信息:mssql
      • 启用 MSSQL 支持
    • 使用以下方法之一指定服务器。

      • hostname:port(Linux) 或hostname,port(Windows)
      • .\MSSQLINSTANCENAME
      • COMPUTER\MSSQLINSTANCENAME
      • 用 IP 地址替换主机名以排除解析问题
    • 使用 ODBC 连接器

      1. 管理工具 -> 数据源 (ODBC)
      2. 系统DNS
      3. 添加...“SQL Server”

        • 然后只需使用 odbc_connect("sql_test", "user", "pass") 即可。
    • 0
  2. Best Answer
    Ryan
    2012-06-27T12:06:11+08:002012-06-27T12:06:11+08:00

    好吧,所以我在 2/3 天后找到了答案。显然从 php 5.3 开始,php 在 IIS 上运行时不再使用 msql.dll 扩展名。现在,它使用名为 sqlsrv.dll 的东西代替它。此外,随着这个新的扩展,需要使用来自此处可用的 php 的 sqlsvr api。所以本质上,当我应该使用 sqlsrv_connect 时,我使用的是 mssql_connect。

    这仍然没有解决我的错误日志记录问题,我仍然无法连接到服务器,但这是由于错误的用户名/密码组合造成的。

    所以感谢大家的帮助,希望有人能在某个时候发现这有用。

    • 0

相关问题

  • 为什么当我尝试删除数据库时 SQL Server 2005 挂起?

  • SQL 洗衣清单

  • 如何提高 SQL Server 镜像性能

  • 聚集索引与非聚集索引?

  • 安全地授予对 SQL 2005 复制监视器的访问权限以创建快照

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve