Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: laczenie za pomoca php z mssql
Forum PHP.pl > Forum > PHP
john_doe
próbuje łączyc sie z mssql`em w taki oto sposob

  1. <?php
  2. $user = 'user'; 
  3. $pass = 'pass';
  4. try {
  5.  $dbh = new PDO('mssql:host=baza;dbname=dbname', $user, $pass);
  6.  print '<table border = "1" align="center" ><tr><td>Lp</td><td>Nazwa</td></tr>';
  7.  foreach ($dbh->query('SELECT * from tabela') as $row) 
  8.  {
  9.  print '<tr><td>';
  10.  print $row[0];
  11.  print '</td><td>';
  12.  print $row[1];
  13.  print '</td>';
  14.  }
  15.  print '</table>';
  16.  $dbh = null;
  17. } catch (PDOException $e) {
  18.  print "Error!: " . $e->getMessage() . "<br/>";
  19.  die();
  20. }
  21. ?>


i dostaje blady typu
Error!: SQLSTATE[01002] Unable to connect: SQL Server is unavailable or does not exist. Access denied. (severity 9)

co moze byc nie tak?

pozdrawiam
Denver
Komunikat błędu po polsku: "Połączenie niemożliwe: SQL Server jest niedostępny lub nie istnieje. Dostęp zabroniony."

Błąd leży ewidentnie w konfiguracji serwera MSSQL - może nie jest włączony, albo podajesz nieprawidłowe dane dla PDO.
john_doe
Server MSSQL chodzi na bank. Łącze sie z nim np Query Analizerem i wykonuje zapytania. Do PDO podaje taki sam login i haslo...
Denver
W takim razie zalecam poszukać rozwiązania w Sieci pod hasłem "SQL Server is unavailable or does not exist".
maverickkk
A tam gdzie jest napisane 'mssql:host=baza' nie trzeba wstawic jakiegos IP ablo localhost ?
john_doe
no trzeba trzeba, wstawiam i kicha
maverickkk
To dalej :] Czemu tam jest

PDO('mssql:host=baza;dbname=dbname', $user, $pass);

a nie np.

PDO('mssql:baza','dbname', $user, $pass);

i czy wpisujesz poprawna nazwe tabeli w bazie danych questionmark.gif wklej teraz jak ten link u ciebie wyglada.
john_doe
dla mysql dziala bez problemu
  1. <?php
  2. $dbh = new PDO('mysql:host=localhost;dbname=krysofton', $user, $pass);
  3. ?>


a tak nie smiga
  1. <?php
  2. $dbh = new PDO('mssql:host=baza,1433;dbname=baza', $user, $pass);
  3. ?>


taki zapis jest w manualu php

nazwe bazy i tabeli podaje dobrą
Holyboy
wlasnie mialem ten sam problem

rozwiazanie :
- uruchom SQL Server Surface Area Configuration
- Surface Area Configuration for Services and Connections
- nazwa instancji (domyslnie MSSQLSERVER) / Datbase Engine / Remote Connections daj na Local and remote
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.