I've been fighting an error with my PHP installation in Windows with Apache related to loadable extensions. In my error log, I kept getting the errors:
PHP Warning: PHP Startup: Unable to load dynamic library 'c:\\Program Files\\PHP\\ext\\php_mssql.dll PHP Warning: PHP Startup: Unable to load dynamic library 'c:\\Program Files\\PHP\\ext\\php_pdo_mssql.dll
Interestingly enough, if I ran PHP through the console, it loaded PDO and mssql just fine, the problem was only with the environment in Apache. Turns out the ntwdblib.dll wasn't being located by Apache. I could probably have added the PHP path to the environment variable PATH, but the easiest solution was to copy the dll to the Windows\System32 directory. A restart of Apache after that cured the problem.
If, like me, you've been using PHP's PDO via the MSSQL driver, be aware that newer versions of PHP do not support MSSQL natively. Microsoft has it's own PHP driver now, or you can use the FreeTDS MSSQL extension, but I strongly recommend just switching to use the provided ODBC and PDO_ODBC extensions and save yourself the trouble. If you're already using PDOs, then you just have to create the object a little differently. For example:
$sql = new PDO("odbc:Driver={SQL Native Client};Server=ip.add.re.ss;Database=dbname;Uid=user;Pwd=password");
That worked for me. Not sure what you can do about the old mssql_guid_string function if you need that, though. I have the FreeTDS lib installed as well and that lets me call it, until I figure out how to do the same thing in ODBC.
Yes, ASP fans, that's a ONE LINE connection to a database. That's all anyone should need!