Ostatnio postanowiłem przetestować MS SQL Server 2008 Express Edition na platformie Windows Server 2008 Enterprise. W tym celu:
1. Zainstalowałem, skonfigurowałem i sprawdziłem poprawność współdziałania IIS 7.0 z PHP 5.2.6 jako moduł FastCGI.
2. Skopiowałem potrzebne pliki do C:\Windows (plik php.ini) i C:\Windows\system32 (biblioteka ntwdblib.dll). W pliku C:\Windows\php.ini poustawiałem to wszystko, co potrzeba dla działania PHP jako modułu FastCGI. Poza tym dodałem odpowiednie rozszerzenia dla bazy danych MS SQL (mssql), ścieżki do katalogu doc_root i php/ext itd.
3. Zainstalowałem bibliotekę PEAR DB do obsługi najnowszej bazy danych firmy Microsoft.
4. Zainstalowałem MS SQL Server 2008 Express Edition with Advanced Features z domyślnymi ustawieniami.
5. Zalogowałem się do MS SQL 2008 Express Edition i utworzyłem przykładową bazę danych.
Dodam, że ww. składniki zostały do testów zainstalowane na jednej maszynie a identyczna konfiguracja działa beż żadnych problemów z bazami MS SQL 2000 i MS SQL 2005. Zaś z MS SQL Server 2008 Express Edition nie chce działać. Podejrzewałem, ze problem tkwi w bibliotece C:\Windows\system32\ntwdblib.dll ale (chyba?) nie. Podmiana bibliotek dostarczanych wraz z PHP 5.2.6 (wersja 2000.2.8.0) jak i z MS SQL 2000 (2000.80.2039.0) nic nie pomagają. Nadal nie mogę połączyć się z ww. bazą danych.
Hmm... zastanawiam się gdzie tkwi diabeł. Czy ktoś z Kolegów może mi wskazać co robię źle? Z góry dziękuję.
Edycja:
Już wszystko poprawnie działa

Poniżej prosta funkcja w PHP do połączenia z bazą MSSQL2008 Express Edition z poziomu skryptu PHP:
<?php function polaczenie() { require_once 'DB.php'; $polacz = DB::connect('mssql://user:haslo@nazwa_serweraSQLEXPRESS/baza_danych'); if (DB::isError($polacz)) { } else { } } ?>
Gdzie SQLEXPRESS nazwa domyślnej instancji.