Verbindung zu SQL Server (IIS) mit php 5.3

milea

Mitglied
Hallo!

Ich möchte mich gerne mit php (Version 5.3) auf einen IIs Server verbinden auf dem sich eine Access-DB befindet und darauf zugreifen. Ich arbeite unter xampp.

Probiert habe ich es mit:
1. mssql_connect
Fehler: "Fatal error: Call to undefined function mssql_connect() in C:\xampp\htdocs\q\dblogon.php"
In der php.ini hab ich "extension=php_mssql.dll" und "extension=php_pdo_mssql.dll" aktiviert. Im ext-Verzeichnis sind beide .dll ordnungsgemäß enthalten. Bei der ntwdblib.dll im php-Ordner bei xampp handelt es sich um die aktuellste Version.
Beim Ausführen von phpinfo() steht weiterhin nichts mit mssql.

Nun habe ich schon ne Weile gegoogelt und erfahren, dass mssql ab php 5.3 nicht mehr unterstützt wird - und es dafür sqlsrv gibt:
2. sqlsrv_connect
Fehler ebenfalls: Fatal error: Call to undefined function sqlsrv_connect() in C:\xampp\htdocs\q\dblogon.php
Was muss ich tun, um das zu aktivieren? In der php.ini steht nichts von sqlsrv. Soweit ich mitbekommen habe, muss dazu noch ein neuer Treiber auf dem SQL-Server installiert sein. Richtig? Ich habe auf den Server kein Zugriff aber ich hoffe der Admin macht das, wenns dann funktioniert. Und wie sieht dann die Sytax in php mit sqlsrv aus?

3. odbc_connect
Fehler:SQL error: [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben, SQL state IM002 in SQLConnect
Kann man odbc in diesem Fall überhaupt nutzen. Ich brauche ja erst ne Verbindung zum SQL-Server um dann auf die Access-DB zuzugreifen. Und sagt der Fehler aus, dass auf dem SQL-Server ein DNS angelegt werden muss? Dies kann dann ja auch nur der Admin.

Nun wie bekomme ich am besten eine erfolgreiche Verbindung zum SQL-Server unter xampp mit php 5.3. ?
Ich würde gern mssql nutzen, da es ähnlich wie die mysql-Funktionen ist und ich so meine Dateien nicht viel umschreiben müsste. Wo muss ich was konfigurieren? Was müsste ich meinen Admin genau sagen, was er auf dem SQL-Server machen soll? Ist es vielleicht empfehlenswert von php 5.3 auf php 5.2 zu wechseln damit mssql unterstützt wird?

Danke für eure Hilfe!
 
Fragen wir mal die doku:
Mssql Anforderungen:
Diese Erweiterung steht unter Windows ab PHP 5.3 nicht mehr zur Verfügung.

Microsoft stellt SQLSRV, einen alternativen Treiber für MS SQL, zur Verfügung: » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx.

Na wenn das so ist dann holen wir uns doch den ominösen neuen Treiber von http://www.microsoft.com/downloads/...FamilyID=80e44913-24b4-4113-8807-caae6cf2ca05

Dann lesen wir uns durch was in der gerade entpackten SQLSRV20_Readme.htm steht.

Und zu guter letzt lassen wir uns noch ein bischen Starthilfe von Microsoft geben: http://social.technet.microsoft.com...-accessing-sql-server-databases-from-php.aspx

Wenn es dann immernoch Probleme gibt helfen wir natürlich gerne.
 
Ok, dazu eine Frage zum Verständnis - der Treiber muss auf dem Server installiert werde, auf dem mein xampp läuft,oder? Muss auch noch was auf dem SQL-Server geändert werden?

Ich kann die Sache mit SQLSRV nicht umgehen?Wenn ich z.B. die PDO Klasse verwende?habe in der php.ini die pdo.dlls aktiviert. Leider erscheint beim Ausführen von phpinfo();
noch immer:
PDO
PDO support enabled
PDO drivers mysql, odbc, sqlite, sqlite2

wenn ich die Verbindung zur DB herstelle mit:
try {
$dbh = new PDO('mssql:host=hostIP;dbname=daten', 'user', 'password');
foreach ($dbh->query('SELECT * from tab') as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "<br>Error!: " . $e->getMessage() . "<br/>";
die();
}

wird mir ausgegeben, dass der Treiber nicht gefunden werden konnte.

Es ist also absolut unumgänglich den sqlsrv-treiber zu installieren?
 
Ok, ich bin nen bissel blöd.. denn eigentlich sollte man wenn was nicht geht ja immer mal wieder an und aus machen ;)
Also obwohl ich php 5.3 habe wird mssql unterstützt und jetzt findet er auch die Funktion - ich musste nur den apache stoppen und wieder starten ;)
 
Zurück