Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Połączenie z bazą mssql
Forum PHP.pl > Forum > Bazy danych > Microsoft SQL Server / MSDE
amaron
Witam,

Mam problem może banalny, ale walczę z nim już 2 dni i nic. oneeyedsmiley02.png

Może ktoś miał podobny problem.

Mam system Windows7

- Zainstalowałem Apache 2.2.17 z instalki httpd-2.2.17-win32-x86-no_ssl.msi
Wybieram dalej dalej
- Network Domain : localhost
- Server Name : localhost
- Administrators email address: webmaster@somenet.com
- For All users on port 80
Next Next Browser wybieram C:\apache
Next Install Finish

- Potem php wersja dla windowsa VC6 x86 Thread Safe (2011-Mar-22 13:29:30) Installer [20.41MB]
- Next Next zgadzam się na wszystko
- Zmieniam ścieżkę na C:\php
- php
- potem wybieram apache2.2.x
- ścieżka do apache C:\apache\conf\
Next Next Install

- zmieniłem w pliku httpd.conf

PHPIniDir "C:/php"
LoadModule php5_module "C:/php/php5apache2_2.dll"


I apache sprawdziłem pod adresem http://127.0.0.1/ It works! następnie sprawdzam php
utworzyłem plik test.php a w nim

<?php

echo "test";

?>

Też chodzi!!!


Teraz moje zasadnicze pytanie dla którego się tutaj tak rozpisałem jak połączyć się z bazą windows sql server 2005 express

Gdzie
server name : LAPTOP\SQLEXPRESS
Login : sa
Password: haslo

Do bazy Autos
Tabela dbo.Cars
kolumny id, name, year

Co należy ustawić najpierw żeby w ogóle można było się połączyć. No i co wpisać bo wpisuję takie coś jak poniżej i biała strona w mozilli a w explorerze błąd HTTP 500 :/


  1. <?php
  2. // Server in the this format: <computer>\<instance name> or
  3. // <server>,<port> when using a non default port number
  4. $server = 'LAPTOP\SQLEXPRESS';
  5.  
  6. // Connect to MSSQL
  7. $link = mssql_connect($server, 'sa', 'haslo');
  8.  
  9. if (!$link) {
  10. die('Something went wrong while connecting to MSSQL');
  11. }
  12. else
  13. {
  14. echo "ok";
  15. }
  16. ?>


Gdzie tkwi błąd? albo co nie gra lub co poprawić? Jakieś pomysły?
piotrooo89
proszę o dodanie odpowiedniego bbcode do listningów, w przeciwnym razie zamknę temat.
amaron
O to biega?
Fifi209
Czytał dokumentację?

$servername
Cytat
The MS SQL server. It can also include a port number, e.g. hostname:port (Linux), or hostname,port (Windows).
amaron
Szczerze się przyznam, że nie czytałem, ale wiem że trzeba wpisać port tylko nie wiem
- jaki?
- i gdzie go poszukać? Czy to 1433?

Głównie chodzi mi o to jak skonfigurować i jaki plik i gdzie dokładnie wgrać, bo w necie jest tego tyle, że nie wiadomo co i gdzie wgrać. Jest coś takiego

- jak plik php.ini i go trzeba gdzieś wgrywać (skopiować) przeczytałem gdzieś już nie pamiętam dokładnie czy w windows czy w windows\system32

- i jeszcze jeden jest z rozszerzeniem ntwdblib.dll należy wgrać w windowsa albo w windows32

- i że w php.ini należy odhaczyć ;extension php_mssql.dll a ja takiego czegoś w nim nie mam w tym pliku


Czy ktoś wie gdzie i co skopiować, aby ten mssql chodził?
prachwal
olej en stary sterownik do połączenia się z MSSQL-em zastosuj ten: SQLSRV

jest nowszy, szybszy i wspiera PDO ale wymaga zainstalowanego Native Client-a

ten co używasz czyli MSSQL_ to staroć jeszcze do wersji MSSQL 2000 - olać

Noidea
Cytat
- jak plik php.ini i go trzeba gdzieś wgrywać (skopiować) przeczytałem gdzieś już nie pamiętam dokładnie czy w windows czy w windows\system32

Nigdzie niczego nie kopiuj, bo to tylko burdel robi. Po prostu dodaj katalog z PHP do zmiennej środowiskowej PATH (Komputer -> właściwości -> Zaawansowane -> Zmienne środowiskowe. Katalogi Windows i Windows\system32 już tam są, dlatego te sztuczki z kopiowaniem działają). Katalogi oddzielone są średnikami.

Później wchodzisz tutaj: http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx
ściągasz sterownik, czytasz Beginner's guide żeby się dowiedzieć jak go zainstalować, instalujesz

instalacja to 3 kroki:
- skopiowanie odpowiednich plików dll (ts_vc6) do c:\php\ext
- dopisanie 1-2 linijek do php.ini (standardowy dostęp i PDO, więcej informacji w Beginner's guide)
- restart serwera

Dodatkowo jeśli masz kłopoty z dołączeniem modułu do PHP to:
- wyłącz serwer
- skasuj plik Apache\logs\error.log
- uruchom serwer
- otwórz error.log i szukaj błędów (poziom wyższy niż notice)
amaron
Ok zrobiłem te kroki:
- czyli skopiowałem ten plik do ext
- wpisałem to w php.ini

I jak teraz zapisać to abym mógł sprawdzić czy mogę połączyć się z bazą w phpinfo() jest niby
sqlsrv
sqlsrv support enabled

Directive Local Value Master Value
sqlsrv.LogSeverity 0 0
sqlsrv.LogSubsystems 0 0
sqlsrv.WarningsReturnAsErrors On On

Chodzi mi dokładnie o zapis tego kodu który jest odpowiedzialny za połączenie dokładnie z tymi danymi jakie podałem wyżej, bo próbuję i nadal jest biała strona. sadsmiley02.gif
Noidea
http://msdn.microsoft.com/en-us/library/cc296182.aspx i inne tematy na: http://msdn.microsoft.com/en-us/library/cc296198.aspx

W twoim przypadku to będzie pewnie coś w rodzaju:
  1. <?php
  2.  
  3. $serverName = "LAPTOP\\SQLEXPRESS";
  4.  
  5. $connectionInfo = array( "UID" => "sa",
  6. "PWD" => "haslo",
  7. "Database" => "nazwaBazyDanych" );
  8.  
  9.  
  10. $conn = sqlsrv_connect( $serverName, $connectionInfo );
  11. if( $conn === false )
  12. {
  13. echo "Unable to connect.</br>";
  14. die( print_r( sqlsrv_errors(), true ) );
  15. }
  16.  
  17. ?>


Jeśli masz problemy z "białymi stronami", to ustaw sobie w php.ini display_errors na On i error_reporting na E_ALL | E_STRICT


PS. Jak już się połączysz i będziesz miał problemy z wykonaniem zapytania, to zanim poprosisz o pomoc zerknij może do MSDN
amaron
Ok wszystko działa ;D Dzięki za pomoc - temat można zamknąć smile.gif
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-2024 Invision Power Services, Inc.