2013-02-28 13 views
5

Próbuję uzyskać wamp php do komunikowania się z DB MsSQL, ale nie mogę sprawić, żeby działało. Obecny komunikat o błędzie pojawia się w przeglądarce (Chrome) to:Rozszerzenie php mssql na wampie

Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: (...) Couldn't connect to SQL Server 
  1. ntwdblib.dll jest poprawna wersja (2000.80.194.0)

  2. Nie mogę korzystać php_sqlsrv (rozmieszczenie serwer jest tylko linux, sqlsrv jest tylko Windows), chociaż z użyciem sqlsrv mogę stwierdzić, że dostęp do informacji jest poprawna (serwer, użytkownik, hasło)

  3. mam obniżony z powrotem do -WampSerwer 2.1e & PHP 5.3.1 (Niektórzy ludzie mają to działa to)

  4. nie ma błędów na apache_error.log kiedy ponownie uruchomić serwer wamp

  5. instalacji FreeTDS na moim komputerze wisi Apache

  6. zdalne urządzenie z powodzeniem wykorzystuje php_mssql.dll (serwer Linux)

Kod używam:

<?php 
$dbhandle = mssql_connect($ip,$user,$pass) or die("Couldn't connect to SQL Server on $ip"); 
$selected = mssql_select_db($dbname,$dbhandle) or die("Couldn't open database at SQL server: $ip"); 
?> 

Mam zamiar wypróbować wirtualną maszynę linuksową, ale na pewno nawet jeśli to zadziała, będzie to ból (powolny i pozbawiony cech).

Mój system: Windows 7, -WampSerwer 2.1e, PHP 5.3.1

Co jeszcze mogę spróbować? :(

+0

Czy możesz pokazać kod, który wypróbowałeś? – Tjoene

+0

Oczywiście, oto mój kod: $ dbhandle = mssql_connect ($ ip, $ user, $ pass) lub umrzeć ("Nie można połączyć się z SQL Server na $ ip"); $ selected = mssql_select_db ($ dbname, $ dbhandle) lub die ("Nie można otworzyć bazy danych na serwerze SQL: $ ip"); –

+0

Nadal utknąłem na tym. W tej chwili używam funkcji, która sprawdza, czy strona jest online. Jeśli jest to wywołanie mssql (które działa na serwerze Linux), jeśli nie jest to wywołuje fałszywe tabele na mysql, które mają taką samą strukturę jak tabele mssql. Działa to, ale jest dalekie od ideału ...: P –

Odpowiedz

0

Czy zainstalować MSSQL Ponieważ wamp w M jest MySQL nie MSSQL

+0

Wiem, ale w tym przypadku muszę pracować z bazą danych mssql db, a nie mysql. Baza danych jest zdalna, nie ma jej na moim komputerze. –

0

Nie można połączyć się z serwerem:. (...) Nie można połączyć się z SQL Server”

czy zainstalować dowolny moduł sterownika wewnątrz PHP dla MS-SQL ??

Poza VM niekoniecznie jest powolny i bezpłciowy - przynajmniej to działa :)

MDB2 lub PDO migh t być najbardziej odpowiednie do abstrahowania we/wy bazy danych.

P: Czy można otworzyć terminal do MS-SQL, np. Telnet?

(Pozwoli to przynajmniej rozwiązać problemy z łącznością).

Być może trzeba ten moduł tutaj: PECL odbtp> = 1.1.1 protokołu transportowego (Open Database)

extension=php_mssql.dll 

^również kasa phpinfo() jeden raz, jeżeli przedłużenie to jest jeszcze załadowany.

http://www.php.net/manual/en/mssql.installation.php

Well - instalowanie MySQL na Windows nie byłoby żadnego problemu (w przypadku, gdy ma sensu).

+0

Dziękuję za odpowiedź. Zainstalowałem rozszerzenie php_mssql i nie ma błędów zgłoszonych przez Apache.Wiem również, że nie ma problemów z łącznością, ponieważ jeśli używam rozszerzenia sqlsrv (z tymi samymi ustawieniami) wszystko działa poprawnie. –

1

Zakładając próbowałem dostać się stąd zainstalowanego sterownika/rozszerzenia: http://www.microsoft.com/en-gb/download/details.aspx?id=20098 i zmieniłeś php.ini w PHP folderze twojego * AMP za ..; i umieścić rozszerzenie mssql w folderze php/ext ...

po kilkugodzinnym szukaniu, ten przewodnik z powodzeniem doprowadził mnie do połączenia z bazą danych MS SQL. http://webcheatsheet.com/php/connect_mssql_database.php

edit: Poza tym moja klasa połączenie trwa DB uname PW i AdresIPSerwera jako parametry konstruktora i konstruktor wywołuje funkcję setCon(), więc gdy obiekt jest tworzony połączenie jest zbyt. Następnie można wywołać pytania dotyczące połączenia obiektów go w stylu OOP

function setCon(){ 
    $conn = mssql_connect($this->server, $this->UName, $this->pw); 
    if ($conn){ 
     echo "Connection established @ $this->server.$this->DB (Connected to MS SQL DB)\n"; 
    } 
    else{ 
     echo "Connection could not be established."; 
     die(print_r(sqlsrv_errors(), true)); 
    } 

a potem to jest potrzebne, aby uzyskać dostęp do połączenia tworzone

function getCon(){ 
    return mssql_connect($this->server, $this->UName, $this->pw); 
} 
0

właściwie domyślnie -WampSerwer nie pochodzi z php_mssql. dll rozszerzenie jest dokonywane na górze php_pdo_mssql lub php_dblib. Testowane na x64 -WampSerwer 2 PHP 5.3.13

  • Korzystanie php_pdo_mssql

    1. Install -WampSerwer
    2. Aktywuj php_pdo_mssql
    3. Aktywuj php_mssql
    4. kopiowania ntwdblib.dll bin/php/php {version}/ext/and bin/apache/{version}/bin
    5. restartuj wszystkie usługi
  • Korzystanie php_dblib

    1. zamiast php_pdo_mssql aktywować php_dblib.

Ostrzeżenie nie aktywują zarówno php_pdo_mssql i php_dblib.

Na różnych wersjach php wampserver działa inaczej na 5.3.1 pierwsze rozwiązanie działało dla mnie, ale na 5.3.13 sekundy.