Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MsSQL] Zewnętrzny Host, ?
Quato
post 23.01.2008, 19:42:24
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 13.08.2005

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Zbłąkany
post 24.01.2008, 00:01:32
Post #2


Administrator serwera


Grupa: Developerzy
Postów: 521
Pomógł: 13
Dołączył: 2.04.2004
Skąd: 52°24' N 16°56' E

Ostrzeżenie: (0%)
-----


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


--------------------
Środowisko: Gentoo 2008.0 | Apache | PHP5 | PostgreSQL | MySQL | Postfix
Workstation: Gentoo 2008.0 | Firefox
Thomas Alva Edison: "Aby coś wynaleźć wystarczy odrobina wyobraźni i sterta złomu ..."
Odpowiedź na każde pytanie typu "Jak ...": "Nie da się, to nie PostgreSQL"
Go to the top of the page
+Quote Post
Quato
post 9.03.2008, 01:59:01
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 13.08.2005

Ostrzeżenie: (0%)
-----


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ę.
Go to the top of the page
+Quote Post
miloszm
post 11.03.2008, 17:40:51
Post #4





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 6.10.2007

Ostrzeżenie: (0%)
-----


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.

Ten post edytował miloszm 11.03.2008, 21:09:06
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 09:53