PHP script wil geen connectie maken met MS SQL server

De plek voor vragen over applicaties die niet goed functioneren.

PHP script wil geen connectie maken met MS SQL server

Berichtdoor Cybertinus » do okt 26, 2006 21:06

Hallo allemaal,

Ik heb een PHP script, en die wil geen verbinding maken met een MS SQL server (let op: dus geen MySQL server, maar de SQL server van Microsoft, dit om verwarring te voorkomen (heb ik al vaker gezien op internet)). De fotumelding die ik krijg is:
Warning: mssql_connect() [function.mssql-connect.html]: Unable to connect to server: <SQL server> in C:\Documents and Settings\cybertinus\My Documents\Websites\Server\test\mssql\connect.php on line 7

De server ligt niet plat. Als ik Microsoft SQL Server Managemet Studio Express opstart (op dezelfde laptop) dan krijg ik wel gewoon verbinding.
Als ik het PHP script kopieer naar m'n PC (dus naar een andere Apache webserver), dan lukt het allemaal ook. Ik denk dus dat er iets mis zit in de Apache en/of PHP instellingen op m'n laptop. Daarom staat dit topic ook in Software en niet in Server Side Scripting ;)
Maar wat zou er mis kunnen zijn? het MSSQL gedeelte in php.in is helemaal gelijk tussen m'n PC en m'n laptop. httpd.conf verschilt totaal. Ook zoveel dat het niet meer met elkaar te vergelijken is.
Voor de volledigheid nog even m'n testscript:
Code: Selecteer alles
<HTML>
   <HEAD>
      <TITLE>MSSQL testscript</TITLE>
   </HEAD>
   <BODY>
<?php
if(!$hDb_conn = mssql_connect('<SQL server>', 'user', 'password))
{
   echo "Helaas, DB verbinding mislukt<br>\nGerapporteerde foutmelding: ".mssql_get_last_message()."<br>\n";
}
else
{
   echo "Woei, DB verbinding gelukt :D<br>\n";
   if(!mssql_select_db('database', $hDb_conn))
   {
      echo "Helaas, het selecteren van de database is mislukt<br>\nGerapporteerde foutmelding: ".mssql_get_last_message()."<br>\n";
   }
   else
   {
      echo "Woei, DB is geselecteerd :D<br>\n";
      $qSelect_gegevens = 'SELECT * FROM tabel';
      if(!$rSelect_gegevens = @mssql_query($qSelect_gegevens, $hDb_conn))
      {
         echo "De query is helaas mislukt :(<br>\nLaatste bericht wat terug kwam: ".mssql_get_last_message()."<br>\nUitgevoerde query: ".$qSelect_gegevens."<br>\n";
      }
      elseif(mssql_num_rows($rSelect_gegevens) == 0)
      {
         echo "De query is gelukt, maar heeft helaas geen resultaten opgeleverd<br>\n";
      }
      else
      {
         echo "De query is helemaal gelukt, en heeft ook resultaten opgeleverd :)<br>\n";
         for($i = 0; $aGegevens = mssql_fetch_assoc($rSelect_gegevens); $i++)
         {
            echo 'Iteratie '.$i."<BR>\n";
            echo "<PRE>\n";
            print_r($aGegevens);
            echo "</PRE>\n";
         }
      }
   }
}
?>
   </BODY>
</HTML>


De gebruikte software:
Laptop:
Microsoft Windows XP Proffessional SP 2, 32 bit
Apache 2.0.55
PHP 5.1.1
Microsoft SQL Server Management Studio Express 9.00.2047.00

PC:
Gentoo Linux, 64 bit, begin van de middag helemaal geupdate, 2.6.18 kernel.
Apache 2.0.59
PHP 5.1.6-pl6-gentoo

MS SQL Server:
MS SQL Server 2005

Wat gaat er mis? Aangezien ik het niet heel erg nuttig vind om hier beide php.ini's en httpd.conf's neer te zetten en ik niet precies weet welke stukken interessant kunnen zijn zet ik hier wel stukken weg op verzoek :)
"Been There, Done That, GOING BACK!" - Disneyland Parijs.
Avatar gebruiker
Cybertinus
 
Berichten: 135
Geregistreerd: ma aug 28, 2006 14:11
Woonplaats: In de buurt van Breda

Berichtdoor AtleX » za okt 28, 2006 10:55

Moet bij MS SQL niet altijd de management tool ervan draaien om een connectie te kunnen maken?
Avatar gebruiker
AtleX
 
Berichten: 147
Geregistreerd: za okt 28, 2006 9:35

Berichtdoor Cybertinus » za okt 28, 2006 11:39

dat lijkt me sterk, aangezien het vanaf een Linux-computer wel werkt en die management tool draait daar niet op. Op m'n laptop maakte het niet uit of de management tool draaide of niet. Het werkte gewoon nooit
Ik maak trouwens verbinding met een MS SQL server die niet hier in huis staat. Die connectie loopt dus over internet. M'n Linux PC en m'n Windows laptop maken dus verbinding met exact dezelfde, externe, SQL server. Op m'n Linux PC werkt het, op m'n Windows laptop dus niet :/
"Been There, Done That, GOING BACK!" - Disneyland Parijs.
Avatar gebruiker
Cybertinus
 
Berichten: 135
Geregistreerd: ma aug 28, 2006 14:11
Woonplaats: In de buurt van Breda

Berichtdoor R0berto[] » za okt 28, 2006 12:25

zet dan toch maar ff beide httpd.conf's en php.ini's hier neer... anders blijft het gissen..

[edit]
Dit vast al gelezen...??
[/url]
Avatar gebruiker
R0berto[]
TWnet Crew
 
Berichten: 280
Geregistreerd: vr aug 11, 2006 22:08

Berichtdoor Cybertinus » za okt 28, 2006 12:53

nope, nog niet gelezen. Nu wel btw :p. Uitgevoerd wat er in dat comment stond. het had helaas geen resultaat.
In een ander commentaar op die pagina stond dat de hostname veranderen van host naar host,1433 (dus de poort waar MSSQL op draait toevoegen) ook een oplossing is. Dat werkt idd. Als ik ,1433 op m'n Linux PC ook toevoeg, dan is hij daar weer wel stuk :S.
Dus op m'n Windows-laptop moet ik host,poort gebruiken bij het server-argument in mssql_connect() en op m'n Linux-pc moet ik host gebruiken. Lekker duidelijk en eendrachtig weer..... Eens kijken of er in de comments verder nog nuttige tips staan die ervoor zorgen dan ik op allebij of host,poort moet gebruiken of op allebij alleen host (het laatste het liefste natuurlijk).
"Been There, Done That, GOING BACK!" - Disneyland Parijs.
Avatar gebruiker
Cybertinus
 
Berichten: 135
Geregistreerd: ma aug 28, 2006 14:11
Woonplaats: In de buurt van Breda


Keer terug naar Software

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 1 gast

cron