MSSQL 2008 Connection in PHP unter Ubuntu 10.04

[E-Commerce] IT-Consulting and Development in Mühldorf am Inn

MSSQL 2008 Connection in PHP unter Ubuntu 10.04

PHP arbeitet wundervoll mit MySQL oder PostgreSQL zusammen. Nichtsdestotrotz kann es vorkommen, dass Daten aus einer Microsoft SQL Umgebung besorgt werden müssen. Die erfreuliche Nachricht ist, dass es tatsächlich funktioniert.

MSSQL konfigurieren

Wichtig ist, dass in Microsofts SQL Server ein neuer Benutzer angelegt wird, der nicht über NT-Benutzeranmeldung (Windows Authentifizierung) authentifiziert wird. Im Management Studio kann ein neuer Benutzer angelegt werden, der über den SQL Server selbst authentifiziert wird.

PHP Konfiguration

Zuerst einmal wird apt angeworfen, um die nötigen MSSQL Pakete zu laden.
[code]apt-get install php5-mssql[/code]
Alternativ kann auch das Sybase Paket verwendet werden
[code]apt-get install php5-sybase[/code]

Die php.ini unter /etc/php5/apache2/php.ini wird im MSSQL Bereich so abgeändert, dass NT-Authentifizierung nicht verwendet wird.
[code][MSSQL]
; Allow or prevent persistent links.
mssql.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.
mssql.max_persistent = -1

; Maximum number of links (persistent+non persistent). -1 means no limit.
mssql.max_links = -1

; Minimum error severity to display.
mssql.min_error_severity = 10

; Minimum message severity to display.
mssql.min_message_severity = 10

; Compatibility mode with old versions of PHP 3.0.
mssql.compatability_mode = Off

; Use NT authentication when connecting to the server
mssql.secure_connection = OFF[/code]

Die Verbindung zur MSSQL Datenbank kann dann innerhalb PHP folgendermaßen aufgebaut werden
[code lang=“php“]\ oder
// , bei abweichender Port Nummer
$server = ‚SQLSERVER\SQLEXPRESS‘;

// Connect
$link = mssql_connect($server, ‚benutzername‘, ‚passwort‘);

//Fehlermeldung ausgeben, sofern Verbindung unmöglich
if (!$link) {
die(‚Konnte keine Verbinung zur MSSQL Datenbank aufbauen‘);
}
?>[/code]

Alle sonstigen Abfragen sind in der Regel identisch zu den Befehlen mit einer MySQL Datenbank.
[code lang=“php“]PHP Referenz verwiesen, die die wichtigsten Informationen bereithält.

 

3 Responses

  1. LaTex sagt:

    Ich habe heute meine ersten Versuche mit mssql gemacht. Da ich schon viel mit mysql gemacht habe, war es eigentlich nicht sehr schwer. Allerdings bekomme ich noch keine Select Abfrage hin, in der ich immer nur 10 Datensätze abhole und anschließend nach diesen Datensatz wieder starte. Den Befehl Limit 0,10 funktioniert bei mssql wohl nicht. Ich habe bereits herausgefunden das ich SELECT TOP 10 * schreiben kann. Aber ich hab noch kein Beispiel gefunden, wie ich einen Startpunkt festlegen kann. Vielleicht könnt Ihr hier mal ein Beispiel erklären.

  2. Torsten.E sagt:

    Der Tipp hat auf Anhieb funktioniert (Ubuntu 11.10). So liebe ich Beschreibungen, leicht nachvollziehbar und funktionell.

    Torsten.E

  3. Iris sagt:

    Super, vielen Dank, kann mich Thorsten nur anschliessen.
    Als kleine Ergänzung, habe ich auch nicht gleich daran gedacht:
    Webserver neu starten vor der php-Script Ausführung
    $R/apache2 restart

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.