"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Php 5.6 + Mssql

Umlüx 10.10.2017 - 11:17 1511 7
Posts

Umlüx

Huge Metal Fan
Avatar
Registered: Jun 2001
Location: Kärnten
Posts: 8977
so, ich bekomm hier grad einen anfall...

ich bin gerade dabei, einen recht alten internen webserver neu aufzubaun und hab gerade entdeckt, dass die mssql_ extension anscheinend ab PHP 5.3 nicht mehr unterstützt wird :eek:
ich soll auf microsofts sqlserv oder pdo umsteigen. das ist leicht gesagt, wenn ich hier massig alten code liegen hab... hab ich irgend eine chance mit php 5.6 nochmal mssql_ zum laufen zu bekommen oder darf ich die nächsten wochen alten code umschreiben gehen?

tia :(

ill

...
Avatar
Registered: Nov 2003
Location: Salzburg
Posts: 2059
Afaik müsstest du das mit diesen Treibern zum Laufen kriegen können: https://www.microsoft.com/en-us/dow...e190a24fa6=True

Umlüx

Huge Metal Fan
Avatar
Registered: Jun 2001
Location: Kärnten
Posts: 8977
ja, das sind die angesprochenen sqlserv treiber. nur ist die syntax zu mssql_ eine andere, sprich, ich müsste viele viele cöde umschreiben

Luka

Administrator
...
Avatar
Registered: Nov 2006
Location: Mödling
Posts: 206
Hi Umlüx,

die mssql-Erweiterung wurde erst mit PHP 7.0 entfernt: https://secure.php.net/manual/de/mi...-exts-sapis.php

In PHP 5.6.X sollte mssql weiterhin verfügbar sein: https://github.com/php/php-src/tree....6.31/ext/mssql

Allerdings wird PHP 5.6 nicht mehr aktiv unterstützt und bekommt offizielle Sicherheitsupdates nur noch bis Dezember 2018: https://secure.php.net/supported-versions.php

Für PHP 7.0 und neuer könnte man einen Wrapper verwenden. Auf Github habe ich ein paar gefunden:

https://github.com/MiRacLe-RPZ/php_sqlsrv_adapter

https://github.com/bskrtich/mssqlwrapper

https://github.com/displague/mssql_helper

LG,
Luka

Umlüx

Huge Metal Fan
Avatar
Registered: Jun 2001
Location: Kärnten
Posts: 8977
naja, laut php.net wurde die erweiterung schon mit 5.3 entfernt.
aber egal, danke für deinen link! da hat sich jemand wohl der sache angenommen und selbst eine gebaut? das seh ich mir morgen gleich näher an!

Luka

Administrator
...
Avatar
Registered: Nov 2006
Location: Mödling
Posts: 206
Im Windows-Build von php.net ist mssql tatsächlich seit PHP 5.3 deaktiviert, weil die von mssql benötigte Bibliothek ntwdblib.dll scheinbar nicht mit neueren Visual-C++-Versionen kompatibel ist. Sry, das habe ich leider übersehen.

Aber statt ntwdblib.dll kann man unter Windows auch FreeTDS wie unter Linux verwenden, man muss es allerdings selbst kompilieren:
https://github.com/php/php-src/blob...ssql/config.w32
https://github.com/FreeTDS/freetds

EDIT: Ein Benutzer von Moodle hat mssql mit FreeTDS erfolgreich mit VC11 kompiliert: https://docs.moodle.org/33/en/Insta...eTDS_on_Windows
Es gibt auch eine Anleitung: https://docs.moodle.org/dev/Compili...S_under_Windows

Umlüx

Huge Metal Fan
Avatar
Registered: Jun 2001
Location: Kärnten
Posts: 8977
danke dir!

Umlüx

Huge Metal Fan
Avatar
Registered: Jun 2001
Location: Kärnten
Posts: 8977
die sache mit dem wrapper hat mich übrigens auf eine idee gebracht.
hab nun PHP7.1 am laufen und einen eigenen, dreckigen wtf wrapper gebaut, der mir mssql_* mysql_' und oci_* in die entsprechenden PDO commands umsetzt.

ausschaun tuts zum speibn, aber es funktioniert :D und alles was ich tun muss, ist den wrapper im alten code zu includen - fertig.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz