Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Podłączanie do bazy danych MSSQL z PHP
Forum PHP.pl > Forum > Bazy danych > Microsoft SQL Server / MSDE
Rafał B
Witam serdecznie
Mam pewien problem z podłączeniem się do bazy MSSQL z poziomu php. Jest to baza programu do obsługi firmy. Problem wygląda tak, że mam lokalnie uruchomiony serwer ale nie na localhost tylko np. \\SERWER\CDN_OPTIMA. Nie mogę w żaden sposób wykonać podłaczenia do bazy. Jeżeli skonfiguruje żródło ODBC to przez funkcje ODBC jestem w stanie się normalnie podłączyć i odczytać jakąś tabelę. Wolałbym jednak wykorzystywać operacje bezpośrednio na bazie. Jestem początkujący i nie moge sobie z tym poradzić. Prosze o jakieś sugestie
SongoQ
Musisz podac host (adres ip) wtedy powinienies sie polaczyc.
No1B
sam adres ip nie wystarczy. w mssql'u wystepuja takze tzw. instancje (rownolegle "serwery" w obrebie tego samego komputera/serwera) - u Ciebie 'CDN_OPTIMA'. Wazne jest w jaki sposob laczysz sie z serwerem. Czy poprzez protokol Named Pipe, czy moze TCP/IP.
Oczywiscie lepszy, nowszy i wydajniejszy jest TCP/IP. Sprawdz.
Najprawdopodobniej u Ciebie pierwszy jest Named Pipe. Uruchom "Client Network Utility" (w uruchom wpisz cliconfg.exe) i ustaw TCP/IP. Dobrze jest tez to ustawic po stronie serwera (odpowiednio Server Network Utility) na okreslonej instancji.

Jesli bedziesz mial z tym problemy - daj znac - pomozemy.

Pozdrawiam
Rafał B
Sprawdziłem w "Client Network Utility" i mam włączone Named Pipe i TCP/IP w zakładce alias mam dwa aliasy do protokołu TCP/IP,
1. Alias serwera: ATHLON i nazwa serwera ATHLON\CDN_OPTIMA
2. Alias serwera: ATHLON\CDN_OPTIMA i nazwa serwera ATHLON\CDN_OPTIMA
Jak próbuje dodać dodać jeszcze jeden np. Alias serwera localhost i nazwa serwera: ATHLON lub IP np. 192.168.0.1 czy 127.0.0.1 to dalej nie mogę połączyć się z serwerem z poziomu php. Mam komunikat "Nie można połączyć"
Czy mam dodawać w ogóle alias czy wystarczy, że mam włączone TCP/IP i powinno działać? Serwer jest uruchomiony na tym samym kompie, z którego próbuje uzyskać połączenie w php. W samym "silniku" bazy nie mogę znaleźć opcji do konfiguracji TCP/IP. Jak skonfigurować TCP/IP w "Server Network Utility"?
Dziękuję za podpowiedź

Pozdrawiam
Rafał
No1B
Server Network Utility jest narzedziem ktore znajdziesz na serwerze SQL.
Tam nalezy wybrac instancje o ktora chodzi i sprawdzic na ktorym porcie
jest postawiona ta instancja (u mnie 2433).

sprobuj sie polaczyc poprzez:
  1. <?php
  2. @$db = mssql_connect($hostname:port,$username,$password);
  3. ?>


alias jest niepotrzebny

Pozdrawiam
Rafał B
Witma serdercznie

No1B napisał:

sprobuj sie polaczyc poprzez:

Kod php:
  1. <?php
  2. @$db = mssql_connect($hostname:port,$username,$password);
  3. ?>

alias jest niepotrzebny

Nie da rady. Nie wiem jaki wpisać "hostname" CDN_OPTIMA nie działa, ATHLON/CDN_OPTIMA też nie, IP też nic nie daje. sadsmiley02.gif
Jak wybrać tą instancę? Na ikonce serwera SQL nie mogę ustawiać żadnych parametrów, tylko ewentulanie: Serwer SQL, MSDE, i jeszcze jedną opcję nie pamiętam jaką. Czy są jakieś narządzia do konfiguracji serwera?
dzięki za pomoc.
pozdrawiam
Rafał
No1B
server skonfigurujesz Server Network Utility

pozdrawiam
Rafał B
Witam serdecznie
Dzięki za podpowiedzi. Zadziałało, przynajmniej lokalnie. Jeszcze nie próbowałem po sieci. Przyczyna była prosta. Przy instalacji php standardowo ma wyłączone extension php_mssql.dll w php.ini. I to chyba było powodem. Nie wiem tylko dlaczego nie wyrzucił jakiegoś innego komunikatu tylko "unable connect to database"?. Działa przy ustawieniu:
  1. <?php
  2. $hostname=&#092;"127.0.0.1CDN_OPTIMA\";
  3. @$db = mssql_connect($hostname:port,$username,$password);
  4. ?>


Dzięki serdeczne za pomoc
pozdrawiam
Rafał
sumar
W moim przypadku instalacja MSDE na Win2000 wyglądała tak. Też długo miałem Unable connect,aż do konfiguracji svrnetcn.exe

Kroki do instalacji mssql_connect na php.

1. W pliku php.ini należy odznaczyć

extension=php_mssql.dll

2. Kopiujemy plik ntwdblib.dll z katalogu php/dlls znajdującego się w instalacji php, do katalogu windows/system32

Teoretycznie powinno starczyć.
Jeśli jednak nadal mamy Unable connect ...możemy wykonać następujący krok.

Odnajdujemy w systemie plik svrnetcn.exe. (Uruchom> svrnetcn.exe) Jeśli go nie ma powinien być na płytce z instalacją SQL Server. Uruchamiamy plik i jeśli po uruchomieniu w Enabled protocols nie mamy TCP/IP dodajemy. Następnie resetujemy server SQL. Powinno działać.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.