Hallo
- Ich halte es für dringendst empfehlenswert, Abfragen auf Tabellen nicht direkt aus dem PHP-Code heraus auszuführen, sondern dafür den Umweg über Stored Procedures (SP) auf dem MS-SQL-Server zu gehen.
Ernsthaft?
Ja, ernsthaft.
Also statt sowas wie
select id, displayname, isadmin from user where username = 'xxx' and password = 'yyy';
würdest Du eine Stored Procedure schreiben, die letztendlich genau dasselbe macht?
Da hast du dir ein nettes, simples Beispiel herausgesucht. Dir ist ganz bestimmt klar, dass damit auch beliebig komplexere Aufgaben erledigt werden können, oder? Ich speichere und verarbeite zum Beispiel in einer Anwendung ein JSON-Objekt mit geschachtelter Struktur. Die Übergabe erfolgt aus einem Python-Skript [1] an eine SP, die das Objekt auseinanderpflückt und die Inhalte auf die veschiedenen zuständigen Tabellen verteilt. Das will ich nicht in Python oder eben auch in PHP tun müssen. Und ja, weil ich dieses System so benutze, erfolgen, quasi als Nebenprodukt, auch die SELECTs per Prozedur.
(ich vermute mal, daß viele Provider stored procedures gar nicht erlauben, aber abgesehen davon sehe ich den Sinn der Stored Procedure nicht wirklich)
Ich kenne keinen Hostinganbieter, der in seinen Standard-Webspace-Paketen [2] einen MS-SQL-Server-Zugang anbietet. Aber auf einem eigenen Server mit eigener Datenbankinstanz kann man das haben (manchmal muss man auch).
Ich gehe auch davon aus, dass sich niemand für ein kleines Webprojekt freiwillig einen MS-SQL-Server ans Bein bindet, wo doch MySQL- oder PostgreSQL in den üblichen Hostingpaketen dabei sind. Wenn Paul1 hier nach so etwas fragt, gehe ich von einer Arbeitsaufgabe aus, wo ein MS-SQL-Server schon vorhanden ist und eine Weboberfläche dazukommen soll. Ich kann natürlich mit meiner Vermutung falsch liegen, will den Tip aber dennoch geben. Mir hat dieses Verfahren jedenfalls jede Menge Kopfschmerzen erspart.
Tschö, Auge
200 ist das neue 35.