我是一个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获取
<?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以下内容:
也请确保安装后,仍然有问题来运行PHPinfo,并检查您是否发现以下内容:
使用以下方法之一来指定服务器。
hostname:port (Linux)或hostname,port (Windows) .\MSSQLINSTANCENAME COMPUTER\MSSQLINSTANCENAME 使用ODBC连接器
添加…“SQL Server”
好的,所以我在一天的三分之二之后find了答案。 显然,从PHP 5.3开始,在IIS上运行时,php不再使用msql.dll扩展。 现在,它使用了一个名为sqlsrv.dll的地方。 此外,有了这个新的扩展,需要使用PHP的sqlsvr api可用在这里。 所以实质上,我使用mssql_connect,当我应该已经使用sqlsrv_connect。
这仍然不能解决我的错误日志logging的问题,我仍然无法连接到服务器,但这是由于一个错误的用户名/ pwd组合。
所以谢谢大家的帮助,希望有人认为有用的某个时候。