Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHP i MSSQL 2005 EXPRESS, JAK się połączyć????
genger
post 13.08.2008, 16:42:20
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 13.08.2008

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


Mam na WIN XP SP2 zainstalowane XAMPP dla Windows Version 1.6.3a (PHP 5.2.3).
Chcę połączyć się z MSSQL SERVER 2005 EXPRESS (tez jest na tym kompie). Podejrzewam, że mam problemy z plikiem ntwdblib.dll . Czy w ogóle da się połączyć przy użyciu tej biblioteki z wersją serwera 2005 EXPRESS?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
angel2953
post 13.08.2008, 19:58:26
Post #2





Grupa: Zarejestrowani
Postów: 199
Pomógł: 5
Dołączył: 8.07.2004
Skąd: gdynia

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


plik ntwdblib.dll dostarczany razem z PHP 5 (wersja 2000.2.8.0) jest jakiś wadliwy. Potrzebujesz wersji 2000.80.194.0 tej biblioteki. Znajdziesz ją na googlach


--------------------
Sygnaturkę ukradli
Go to the top of the page
+Quote Post
genger
post 2.09.2008, 13:03:24
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 13.08.2008

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


Znalzałem ntwdblib.dll w wersji 2000.80.194.0, umieściłem go w C:\WINDOWS\system32 i w katalogu PHP. Dodatkowo stworzyłem usera do MSSQL SERVERA, który działa przy logowaniu
W MSSQL management studio express z authentisation: SQL SERVER.
Nazwę servera w oknie logowania mam: MACIEKM\SQLEXPRESS; login: php; hasło: maciekm
Wykonuję w php skrypt:
<? $polacz_z_serwerem = mssql_connect('maciekm\sqlexpress', 'php', 'maciekm') or die ("nie można się połączyć");
?>
Otrzymuję w przegladarce wynik:
Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: maciekm\sqlexpress in C:\xampp\htdocs\users\mssql\index.php on line 204
nie można się połączyć
Go to the top of the page
+Quote Post
angel2953
post 2.09.2008, 14:05:37
Post #4





Grupa: Zarejestrowani
Postów: 199
Pomógł: 5
Dołączył: 8.07.2004
Skąd: gdynia

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


ok mam:

Po pierwsze:
to jest plik ntwdblibdll, który mam w katalogu C:\Serwery\PHP (tutaj jest cała instalka PP 5.2.6 - plik php.exe i cała reszta od PHP) i tylko tam,

Po drugie:
Sprawdź czy masz możliwość nawiązywania połączeń przez TCP/IP czylli:
1. Uruchom SQL Server Configuration Manager
2. w sekcji SQL Server 2005 Network Configuration masz Protocols for NAWA_INSTACJI_NADANA_PRZY_INSTALACJI po prawej stronie masz dostępne protokoły dostępu do bazy (domyślnie jest tylko Shared Memory),
Sprawdź czy TCP/IP jest []enabled[/b] jak nie to:
3. Kliknij PPM na TCP/IP i daj Enable i zrestartuj usługę MSSQL
4. znów w "SQL Server Configuration Mnager" w sekcji "Protocols for [...]" na TCP/IP kliknij PPM i Properties na drugiej zakładce powinieneś mieć numer portu (możesz go sam dzdefiniować - chyba wtedy nie będzie się zmieniał po każdorazowym restarcie usługi)


i teraz prosty kod na połączenie:
  1. <?php
  2.  
  3.  
  4. // tutaj podajesz port z Managera
  5. $servername='localhost,4634';
  6. $username='username';
  7. $password='userpass';
  8.  
  9. $conn = mssql_connect($servername, $username, $password);
  10.  
  11. if(!$conn) {
  12. die("Connection failed...");
  13. } else {
  14. echo "Connection OK\n";
  15. }
  16.  
  17. mssql_close($conn);
  18.  
  19.  
  20. ?>


zapisz wszystko do pliku i uruchom go w przeglądarce. Jak będzie Connection OK to się połączyłeś.

Ten post edytował angel2953 2.09.2008, 20:21:30


--------------------
Sygnaturkę ukradli
Go to the top of the page
+Quote Post
vokiel
post 3.09.2008, 08:17:49
Post #5





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Jeśl to jest MSSQL 2005 Express to w połączeniu trzeba podać port (1433)
  1. <?php
  2. $this->connection = mssql_connect('SERWERSQL,1433','sa','123') or die(mssql_get_last_message());
  3. $this->db = mssql_select_db('BAZA',$this->connection) or die(mssql_get_last_message());
  4. ?>


--------------------
Go to the top of the page
+Quote Post
genger
post 4.09.2008, 13:37:49
Post #6





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 13.08.2008

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


Wszystkie ustawienia jak w Waszych podpowiedziach (plik nowy i TCP/IP było tak skonfigurowane, nawet logowałem jako sa) i nadal nie działa:
Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: MACIEKM\SQLEXPRESS,1433 in C:\xampp\htdocs\users\mssql\index.php on line 204

Ten post edytował genger 4.09.2008, 13:39:09
Go to the top of the page
+Quote Post
termin
post 4.09.2008, 14:40:10
Post #7





Grupa: Zarejestrowani
Postów: 113
Pomógł: 1
Dołączył: 13.05.2003
Skąd: Wrocław

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


wczoraj inastalowalem na windowsie tez xamp i ruszyło bez problemu, co zrobiłem:

podmieniłem bibliotekę ntwdblib.dll w wersji 2000.80.194.0 w c:\xamp\apache\bin\ po uprzednim zatrzymaniu xampa.

nastepnie zainstalowałem MDAC w wersji 2.8 i potem MDAC 2.8 SP1

restart kompa i działa.
Go to the top of the page
+Quote Post
genger
post 5.09.2008, 14:10:19
Post #8





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 13.08.2008

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


Podmieniłem bibliotekę ntwdblib.dll w wersji 2000.80.194.0 w c:\xamp\apache\bin\ po uprzednim zatrzymaniu xampa (bo używał ten plik apache). IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
ZADZIAŁAŁO NARESZCIE!!!. Wykonuję próbnie selecta i mam wynik w przęglądarce UH, DZIĘKUJĘ WSZYSTKIM ZA POMOC:

$polacz_z_serwerem = mssql_connect('MACIEKM\SQLEXPRESS', 'php', 'maciekm') or die ("nie można się połączyć");

if(!$polacz_z_serwerem) {
die("Connection failed...");
} else {
echo "Connection OK\n";
}
$myDB = 'Student_kurs';
$selected = mssql_select_db($myDB, $polacz_z_serwerem)
or die("Couldn't open database $myDB");


$query = "select * from Student ";

$result = mssql_query($query) or die;

while ($row = mssql_fetch_array($result))
{
print $row[1];
print '<BR>';

}





jeszcze odnośnie konfiguracji MSSQL SERVERA i jego użytkownika dla php znalazłem fajny artykuł: http://net.ratio.eu.org/2008/05/n-w-plecy-...ms-sql.html

Oto jego część dotyczącą MSSQL SERVERA pod XP.
Konfiguracja SQL Servera 2005

Teraz czeka nas trochę klikania - jak to na Windowsie ;p Uruchamiamy SQL Server Surface Area Configuration i klikamy Surface Area Configuration for Services and Connections. W nowym oknie rozwijamy drzewko po lewej i zaznaczamy Remote Connections. Teraz po prawej zaznaczamy Local and remote connections, poniżej upewniamy się, że aktywna jest opcja pierwsza (Using TCP/IP only) lub ewentualnie trzecia i zatwierdzamy zmiany przyciskiem OK. Zostaniemy poinformowani o konieczności ponownego uruchomienia serwera w celu wprowadzenia zmian. Oczywiście dajemy OK, ale jeszcze nie restartujemy niczego.

Zamykamy wszystkie okienka, odpalamy SQL Server Management Studio i logujemy się. W oknie Object Explorer klikamy prawym przyciskiem myszy główną gałąź (tak, to ta z nazwą naszego hosta ;>), a następnie z menu kontekstowego wybieramy Properties. Otwiera się okno ustawień. Po lewej na liście Select a page zaznaczamy Security. Po prawej stronie widnieją teraz w czterech grupach ustawienia zabezpieczeń. W grupie Server authentication wybieramy SQL Server and Windows Authentication mode. Zatwierdzamy przez OK. Kolejny raz pojawi się komunikat dotyczący konieczności restartu. Wbijamy OK i lecimy dalej.

Wracamy do naszego drzewka. Rozwijamy teraz gałąź Security i klikamy prawym przyciskiem myszy na Logins. Z menu kontekstowego wybieramy New Login.... Przechodzimy do utworzenia nowego użytkownika dla PHP. Z sekcji Select a page wybieramy General. Po prawej podajemy nazwę usera, zaznaczamy opcję SQL Server authentication, ustalamy oraz potwierdzamy hasło dostępu i usuwamy zaznaczenie z checkboksa przy Enforce password policy. Przechodzimy do Server Roles (lewe menu). Na liście dostępnych ról zaznaczamy sysadmin i zatwierdzamy wszystko przez OK. Oczywiście można utworzyć i przypisać PHP osobną rolę, choćby ze względów bezpieczeństwa, jednak do zastosowań domowych przedstawiona konfiguracja powinna w zupełności wystarczyć.

Na koniec, wieńcząc nasze karkołomne zmagania z konfiguracją SQL Servera, uroczyście dokonujemy jego ponownego uruchomienia (eee... zrymowało się? ;p). Powtórnie popełniając prawoklik na najwyższej gałęzi drzewa Object Explorera wybieramy tym razem opcję Restart. Serwer zapyta jeszcze tylko czy aby na pewno chcemy mu to uczynić, na co odpowiemy soczystym Yessss.

Ten post edytował genger 8.09.2008, 13:05:03
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: 12.08.2025 - 05:39