ib: MSSQL Verbindung per PHP funktioniert nicht

Hallo,

ich möchte eine normale MSSQL Verbindung per PHP herstellen. Leider funktioniert es nicht, es kommt aber auch keine Fehlermeldung gar nichts. So sieht meine Verbindung aus. Wie kann ich es denn testen. Warum gibt er mir keinen Fehler aus?

<?php
$myServer = "localhost";
$myUser = "benutzer1";
$myPass = "passwort1";
$myDB = "test";

//connection to the database
$dbhandle = mssql_connect($myServer, $myUser, $myPass)
  or die("Couldn't connect to SQL Server on $myServer");

//select a database to work with
$selected = mssql_select_db($myDB, $dbhandle)
  or die("Couldn't open database $myDB");

//declare the SQL statement that will query the database
$query = "SELECT id, name, hersteller ";
$query .= "FROM auto ";
$query .= "WHERE name='BMW'";

//execute the SQL query and return records
$result = mssql_query($query);

$numRows = mssql_num_rows($result);
echo "<h1>" . $numRows . " Row" . ($numRows == 1 ? "" : "s") . " Returned </h1>";

//display the results
while($row = mssql_fetch_array($result))
{
  echo "<li>" . $row["id"] . $row["name"] . $row["year"] . "</li>";
}
//close the connection
mssql_close($dbhandle);
?> 
  1. Hallo,

    ich möchte eine normale MSSQL Verbindung per PHP herstellen.

    Arbeitest du mit PHP 7?

    This function was REMOVED in PHP 7.0.0.

    Gruß
    Kalk

  2. Tach!

    ich möchte eine normale MSSQL Verbindung per PHP herstellen. Leider funktioniert es nicht, es kommt aber auch keine Fehlermeldung gar nichts.

    Was bemerkst du denn stattdessen? Dauert es lange oder ist der Browser sofort fertig mit dem Erzeugen der Nicht-Ausgabe? Die üblichen Verdächtigen wie error_reporting und display_errors sind auch aktiviert? Ins Error-Log des Webservers hast du geschaut? Beziehungsweise PHP so eingestellt, dass es Fehler in eine Log-Datei schreibt? Und im Handbuch hast du auch die Kapitel Requirements und Installation gelesen?

    dedlfix.

  3. Ich habe noch nie MSSQL von PHP aus anzusprechen versucht, aber auf der Intro-Seite zu MSSQL auf php.net steht, dass die MSSQL-Erweiterung ab PHP 5.3 nicht mehr zur Verfügung stünde.

    Hast Du PHP 5.2 oder etwas älteres im Einsatz?

    Wenn nicht - möglicherweise sind die Funktionen noch als Dummy vorhanden?

    Auf besagter Introseite befindet sich auch ein Link zum MSDN mit einem Ersatzprodukt für die MSSQL Erweiterung. Wenn ich php.net richtig verstehe, ist das zur Zeit die empfohlene Methode für MSSQL.

    Alternativ dazu gibt es auch noch den ODBC-Treiber für PDO, aber dann legst Du zwei Abstraktionsebenen übereinander. Diese Extrakomplexität nimmt man nur in Kauf, wenn man muss...

    Rolf

  4. Danke für die Info. Seze neuer als 5.3 ein. Somit hat sich das ganze Thema für mich erledigt.

    Verstehe aber die Logik nicht, warum dass nicht mehr möglich ist.

    1. Tach!

      Verstehe aber die Logik nicht, warum dass nicht mehr möglich ist.

      Die Logik ist ganz einfach zu verstehen. Jede Extension in PHP hat ihr eigenes Kapitel in der PHP-Doku und darin findest du weitere Abschnitte wie Installation und Requirements. Da steht alles drin, was man zum Verständnis benötigt. Und sogar Lösungswege.

      dedlfix.

    2. Einige PHP Extensions haben schon das Ende ihres Lebensweges erreicht. Die Gründe können unterschiedlich sein. Wenn ich php.net richtig lese, musste mssql_* in das PHP.EXE eincompiliert werden und sqlsrv_* ist eine DLL-Erweiterung, die sich dynamisch aktivieren lässt. Ich bin kein PHP Erweiterungsexperte, aber das klingt mal nach einer ordentlichen Modularisierung :)

      Ich lese allerdings gerade, dass sqlsrv_ nur unter Windows unterstützt wird. Für Linux und PHP7 bauen sie wohl gerade an einem PDO Treiber; bei älteren PHP lese ich die Infos im Netz so, dass ODBC angesagt ist.

      Rolf

      1. also geht es so nicht mehr.