Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MsSQL] Zewnętrzny Host
Forum PHP.pl > Forum > Bazy danych > Microsoft SQL Server / MSDE
Quato
Witam!

Koduje w PHP 7 lat z bazami MySQL nie miałem problemów.

Zaistniała potrzeba wbudowania w kod obsługę MsSQLa, no i są problemy.

Moje pytanie to co muszę zrobić by połączyć sie z bazą danych na osobnym hoscie.

A mianowicie host z HTTP stoi na linuksie jest skompilowany z obsługą baz MsSQL, nigdy nei miałem z tym serwerem problemów.

Drugi host stoi na MS XP Pro ver. 2002 + SP2 i tam jest odpalony MsSQL Server 2000 ver. 120 dni (Planowana zmiana na Expr.)

Następnie SQL stoi za firewallem linuksowym port przekierowany na lokalny komputer, połączenie działa.

Wykonanie : (zwraca Online)

  1. <?php
  2. @$fp = fsockopen ("ip", '3598', $errno, $errstr, 4);
  3.  if (!$fp) { 
  4. echo 'Serwer MsSQL: <font color=red>OffLine</font>';
  5.  }
  6.  else
  7.  {
  8. echo 'Serwer MsSQL: <font color=green>OnLine</font>';
  9. }
  10. ?>



Następnie połączenie z bazą realizuje w sposób : (zwraca błędy)

  1. <?php
  2. $msconnect = mssql_connect("ip:3598","sa","pass");
  3. if (!$msconnect) { 
  4. echo '<font color=red>Brak Polaczenia z Baza MsSQL </font>';
  5. }
  6. else
  7. {
  8. echo '<font color=green>Polaczony z Baza MsSQL</font>';
  9. }
  10.  
  11.  
  12. $msdb = mssql_select_db("nazwa_bazy",$msconnect);
  13. if (!$msdb) { 
  14. echo '<font color=red>Brak Bazy Danych</font>';
  15. }
  16. else
  17. {
  18. echo '<font color=green>Baza Danych Wybrana</font>';
  19. }
  20. ?>


Pytanie to czy przy łączeniu sie z bazą wymagane jest podanie "\instance_name"

Co muszę jeszcze zrobić by połączyć sie z bazą.

Proszę o pomoc.
Zbłąkany
Z tego co wiem to trzeba podać nazwę instancji. Pokaż, jaki błąd dostajesz, wtedy będzie można coś dokładnie stwierdzić smile.gif
Quato
No z tymi błędami to nie za bardzo...

nawet przy włączonym:

  1. <?php
  2. ?>


Nic mi nie wyświetla tak jest serwer skompilowany... (globalnie).

jutro będzie zmiana wersji PHP może coś pomoże...

Natomiast dalej proszę o pomoc dodałem instance do połączenia i dalej nic.

Witam ponownie smile.gif

Ja dalej siedzę nad tym połączeniem...

Potrafi mi ktoś wytłumaczyć jak skonfigurować FreeTDS by chodziła mi zewnętrzna baza MsSQL ?

Stoi sobie serwer na Linuksie zainstalowany jest FreeTDS lecz wywołanie mssql_connect(); nie działa.

Czy może być to związane ze nie działa to na standardowym porcie ? chociaż w połączeniu podaje port...

Serwer MsSQL działa poprawnie widać go z zewnątrz z innego WinSerwa działa bez problemu.

Pomóżcie Proszę.
miloszm
Witam,

miałem niedawno podobny problem. Proponuję sprawdzić ustawienia FreeTDS, które znajdują się w pliku konfiguracyjnym freetds.conf. Nie trzeba podawać nazwy instancji, o ile jest ona określona w tym pliku. Podobnie jest z numerem portu. Jeżeli jest on podany w pliku, nie należy podawać go drugi raz przy połączeniu (w moim przypadku właśnie z tego wynikał problem - mimo, że porty były identyczne). Zamiast numeru IP podaje się nazwę serwera, podaną w freetds.conf.

Przykładowo wpis w pliku konfiguracjnym może wyglądać tak:

[NazwaSerwera]
host = HostLubIp
instance = Instancja
port = 3598
tds version = 8.0

Wówczas łączymy się z SQL z naszej aplikacji np. w taki sposób:

$conn = mssql_connect('NazwaSerwera', 'NazwaUzytkownika', 'HasloUzytkownika');

Pozdrawiam.
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.