ID: 38965 Updated by: [EMAIL PROTECTED] Reported By: aren at cambre dot biz -Status: Open +Status: Bogus Bug Type: MSSQL related Operating System: Windows 2003 (for both servers) PHP Version: 4.4.4 Assigned To: fmk New Comment:
The MSSQL Extension for PHP uses ntwdblib as the library to connect to teh server. The configuration of this library is done with MS SQL Server Client Tools. These tools are installed from the CD and can be installed without the rest of the server to allow remote connections to the server. If ntwdblib.dll is copied to the server one way or the other, there is no way (except for registry hacks) to configure the library. PHP is not responsible for installation of a Microsoft tool or any other 3rd party libraries, but we expect them to be installed correct. There is no bugs in PHP here. Previous Comments: ------------------------------------------------------------------------ [2006-09-26 19:15:13] aren at cambre dot biz Lemme add some more info: The IIS (web) server is a really vanilla Windows Server 2003 box. All that is installed, per Add or Remove Programs, is McAfee VirusScan Enterprise, Microsoft .NET Framework 2.0, PHP 4.4.4, and WMware Tools (it's virtual). I also installed Wireshark 0.99.3 and WinPcap 3.1, but they were installed afte the fact and did not affect the issue. If PHP's SQL Server connect script doesn't work right on a vanilla box, I can't believe this is "bogus". SQL Server or SQL Server Client Tools has never been installed on this box. Programs should adhere to industry standard behaviors on vanilla Windows boxes, and industry standard for talking to SQL Server is TCP 1433. If PHP is not doing it, it needs to be fixed or properly documented. It may be as simply as classifying this as a documentation bug and adding documentation that addresses the issue, if that is the proper solution. ------------------------------------------------------------------------ [2006-09-26 18:23:45] aren at cambre dot biz This ntwdblib was on a default installation of Windows Server 2003. ------------------------------------------------------------------------ [2006-09-26 17:35:43] [EMAIL PROTECTED] No PHP uses ntwdblib and if you install the Client tools from MSSQL server you can define the default protocol. Older versions of ntwdblib (or combinations of other MS tools installed) uses named pipes as the default. The best way is to install the Client Tools and us the Clinet Network utility to set default protocol as well as create aliases for different servers. Each alias can be defined with the prefered protocol. ------------------------------------------------------------------------ [2006-09-26 17:25:21] [EMAIL PROTECTED] Frank, is this really a PHP problem? ------------------------------------------------------------------------ [2006-09-26 17:16:54] aren at cambre dot biz Description: ------------ When using mssql_connect to connect to a SQL Server database on a remote server, PHP attemtps to connect using named pipes. This is a terribly outdated behavior; SQL Server connections these days are almost always done with TCP 1433. I figured this out with a difficult phpBB installation and using Wireshark (formerly Ethereal) to watch network traffic. There is a registry hack that can force the SQL Server Client program to use TCP 1433, but this hack's effects on other software is unknown. For more info, see http://people.smu.edu/acambre/blog/2006/09/22/Buggy+PHP.aspx and http://www.phpbb.com/phpBB/viewtopic.php?t=446662&postdays=0&postorder=asc&start=0 Reproduce code: --------------- Just use mssql_connect to connect to an external database. Expected result: ---------------- The database should open just as if the database is on localhost. Actual result: -------------- Usually a cannot connect error. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=38965&edit=1