无法获得与sql server 2005工作的mssql

我是一个MySQL / Apache用户,试着用IIS和SQL服务器试试我的手,所以请,如果这是一个愚蠢的问题有耐心。

我正在使用IIS版本7.5。 PHP版本5.3.13和SQL Server 2005 IIS在端口90上运行,不知道这是否会有所作为。 我知道我的SQL服务器正在运行,因为我可以在服务器pipe理工​​作室中探索/连接到它。

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

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

编辑 – 但是,当我运行phpinfo()在“configuration命令”行下,这是目前:–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

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

谢谢

尝试追加实例名称到服务器名称。 下面从http://php.net/manual/en/function.mssql-connect.php获&#x53D6;

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

编辑

另外,请validation以下内容:

  • 确保你已经build立了一个拥有连接权限的“SQL SERVERauthentication”的用户
  • 也请确保安装后,仍然有问题来运行PHPinfo,并检查您是否发现以下内容:

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

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

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

      • 然后使用odbc_connect(“sql_test”,“user”,“pass”)来代替。

好的,所以我在一天的三分之二之后find了答案。 显然,从PHP 5.3开始,在IIS上运行时,php不再使用msql.dll扩展。 现在,它使用了一个名为sqlsrv.dll的地方。 此外,有了这个新的扩展,需要使用PHP的sqlsvr api可用在这里。 所以实质上,我使用mssql_connect,当我应该已经使用sqlsrv_connect。

这仍然不能解决我的错误日志logging的问题,我仍然无法连接到服务器,但这是由于一个错误的用户名/ pwd组合。

所以谢谢大家的帮助,希望有人认为有用的某个时候。