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

Mam problem z połączeniem się do bazy danych MSSQL. Mam zainstalowany webserv na windows 8 i stworzony plik

  1. <?php
  2. function connection_mssql() {
  3. $ip = 'xxx.xxx.xxx.xxx:XXXX';
  4. $server_name = "xxx\xxx";
  5. $username = 'xxx';
  6. $password = 'xxx';
  7.  
  8. $con = mssql_connect($ip, $username, $password)
  9. or die('Could not connect to the server!');
  10. }
  11. ?>


W głównym pliku wywołuje

  1. require "mssql_connection.php";
  2. connection_mssql();


Błąd, który otrzymuję to:
Fatal error: Call to undefined function mssql_connect() in C:\WebServ\httpd-users\mssql_connection.php on line 10
nospor
NIe masz zainstalowanego modulu mssql....
http://pl1.php.net/manual/en/mssql.installation.php
john_doe
to na bank smile.gif
ostatnio jak miałem kłopoty z połączeniem z MSSQL ( na wersji php 5.2.9 aby nie używać sqlsrv ale też i z innych powodów infrastrukturalnych ) potrzebowałem podmienić bibliotekę ntwdblib.dll na versję 2000.80.194.0

to dla dla potomnych może smile.gif
andyet
Mieliście rację co do biblioteki, zainstalowałem i się łączy, ale pokazuje mi Login faild, przy danych, które na pewno są poprawne (łączę się na nich przez MS SQL Management). W połączeniu daje IP\Serv, a w SQL Management mam XXXXXX-Server\XXX, tylko jak się łączę do tej bazy z zewnątrz to muszę podać IP? Niby wsio ok, ale nie wiem teraz czemu jest ten login faild.
kasior
Hej. Podłaczę sie do tematu. Mam podobny problem z połaczeniem tyle, że ja używam sqlsrv i PDO. Pierwszy raz łączę się z tą bazą i za bardzo nie wiem co dalej robić.

kody:

init.php
  1. try{
  2.  
  3.  
  4. $hDB = Database::connect();
  5.  
  6. $hDB->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
  7.  
  8. $hDB->query('set names utf8');
  9.  
  10. $request = new Request();
  11. $smarty = new Smarty();
  12.  
  13.  
  14. }
  15. catch (HttpRequestException $e){
  16. drawMessage('warning','Nieprawidłowy parametr','index.php');
  17. print_r( $e->getMessage() );
  18. }
  19. catch (PDOException $e){
  20. drawError('Przepraszamy. Serwis chwilowo niedostępny.');
  21. print_r( $e->getMessage() );
  22. }


class.Database.php

  1. class Database {
  2. public static $hDB;
  3. static public function Connect() {
  4.  
  5. self::$hDB = new PDO( "sqlsrv:server=127.0.0.1/SQLEXPRESS; Database=nazwa_bazy", "user", "haslo");
  6. if (self::$hDB instanceof PDO)
  7. return self::$hDB;
  8. else
  9. throw new PDOException();
  10. }
  11. }


W tym momencie dostaje komunikat:

SQLSTATE[08001]: [Microsoft][SQL Server Native Client 10.0]Named Pipes Provider: Could not open a connection to SQL Server [67].

Jeżeli dodam port ,1433 (jest standardowy ustawiony) to komunikat wygląda tak:

SQLSTATE[08001]: [Microsoft][SQL Server Native Client 10.0]TCP Provider: No such host is known.

Pomocy panowie bo juz niewiem, czy ja coś zle napisałem czy może sql server nie tak skonfigurowany.
Obsługa Named Pipes na serwerze SQL jest włączona jak coś.
Dodam, że działa na nim aplikacja .net i z jej baza chce sie połączyć.



EDIT>> Ok. Dałem rade. trzeba było wyklikać jeszcze kilka rzeczy w sql server i zmienic "/" na "\"
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.