Microsoft SQL-Server mit PHP genauso problemlos wie MySQL?
SebastianJu
- datenbank
0 Vinzenz Mai0 SebastianJu0 Vinzenz Mai0 SebastianJu
0 Peter Pan0 Vinzenz Mai
Hallo,
mit PHP zu MySQL kenne ich mich gut aus. Jetzt soll es aber darum gehen von PHP zu einem MS-SQL-Server zuzugreifen. Ist das genauso problemlos möglich wie mit MySQL oder gibt es da etwas zu beachten?
Hallo,
mit PHP zu MySQL kenne ich mich gut aus. Jetzt soll es aber darum gehen von PHP zu einem MS-SQL-Server zuzugreifen. Ist das genauso problemlos möglich wie mit MySQL oder gibt es da etwas zu beachten?
die MSSQL-Funktionen sind nicht besonders gut dokumentiert, sie sind nicht so zahlreich und nicht immer ist die MSSQL-Anbindung freigeschaltet.
Grundsätzlich rate ich Dir beim PHP-Zugriff auf MS SQL-Server zur Verwendung eines Abstraktionslayers. Ich selbst nutzte ADOdb.
Freundliche Grüße
Vinzenz
die MSSQL-Funktionen sind nicht besonders gut dokumentiert, sie sind nicht so zahlreich und nicht immer ist die MSSQL-Anbindung freigeschaltet.
Was meinst du mit "freigeschaltet"? Zugriff dürfte ich auf alles bekommen was da an Servern ist.
Grundsätzlich rate ich Dir beim PHP-Zugriff auf MS SQL-Server zur Verwendung eines Abstraktionslayers. Ich selbst nutzte ADOdb.
Das würde dann bedeuten dass man mit den selben Befehlen auf Mysql und mssql zugreifen könnte oder? Ist damit auch die Funktionsvielfalt erweitert?
Ich werde mal schauen was besser funktioniert. Theoretisch werde ich nicht viel mehr als Insert, Update und Select brauchen. Alles andere sollte in den SQL-Anweisungen selbst passieren können.
Verändern die Abstraktionslayer auch die SQL-Anweisungen? So dass man eine andere Syntax braucht?
Hallo,
die MSSQL-Funktionen sind nicht besonders gut dokumentiert, sie sind nicht so zahlreich und nicht immer ist die MSSQL-Anbindung freigeschaltet.
Was meinst du mit "freigeschaltet"? Zugriff dürfte ich auf alles bekommen was da an Servern ist.
nicht vorhanden :-)
Wie sieht Deine Konfiguration aus?
[ ] PHP auf gleichem Rechner wie DB-Server
[ ] PHP auf anderem Rechner als DB-Server, aber ebenfalls Windows
[ ] PHP auf unix-artigem Betriebssystem
[ ] PHP auf ganz anderem Betriebssystem, ____________
Das würde dann bedeuten dass man mit den selben Befehlen auf Mysql und mssql zugreifen könnte oder? Ist damit auch die Funktionsvielfalt erweitert?
Nein. Entweder Du beschränkst Dich auf den jeweiligen SQL-Dialekt oder auf das gemeinsame Minimum. Wenn Du Zeichenketten verkettest, hast Du es bei MySQL und T-SQL (dem SQL-Dialekt des MS SQL-Server) mit zwei unterschiedlichen Lösungen zu tun, die eines gemeinsam haben: sie sind proprietär:
MySQL verwendet die Funktion CONCAT(), T-SQL den Operator +, SQL-Standard ist der Operator ||.
Ich werde mal schauen was besser funktioniert. Theoretisch werde ich nicht viel mehr als Insert, Update und Select brauchen. Alles andere sollte in den SQL-Anweisungen selbst passieren können.
Einfaches Beispiel: Die mssql_*-Funktionen bieten keine Funktion für das Maskieren von Zeichenketten für den SQL-Kontext an. Du darfst Dir diese selbst schreiben. magic_quotes_sybase zu verwenden, ist keine gute Idee.
Freundliche Grüße
Vinzenz
nicht vorhanden :-)
Wie sieht Deine Konfiguration aus?[ ] PHP auf gleichem Rechner wie DB-Server
[ ] PHP auf anderem Rechner als DB-Server, aber ebenfalls Windows
[ ] PHP auf unix-artigem Betriebssystem
[ ] PHP auf ganz anderem Betriebssystem, ____________
Ich weiß es noch nicht. Ich schätze aber PHP wird getrennt von der Datenbank sein. Ich weiß es aber nicht. Aber ich denke ich werde nur den PHP-Bereich coden. Den Rest kann ich hoffentlich anderen überlassen. Ich denke ich werde dann nur Host, User und Pass und Datenbank brauchen.
Nein. Entweder Du beschränkst Dich auf den jeweiligen SQL-Dialekt oder auf das gemeinsame Minimum. Wenn Du Zeichenketten verkettest, hast Du es bei MySQL und T-SQL (dem SQL-Dialekt des MS SQL-Server) mit zwei unterschiedlichen Lösungen zu tun, die eines gemeinsam haben: sie sind proprietär:
MySQL verwendet die Funktion CONCAT(), T-SQL den Operator +, SQL-Standard ist der Operator ||.
Aha. Na ich denke dass die Extension die ich programmieren würde nur mit einer Datenbankart betrieben wird. Weshalb ich da glaube ich erstmal nicht auf Interoperabilität mit anderen Datenbanken werde achten müssen.
Ich werde mal schauen was besser funktioniert. Theoretisch werde ich nicht viel mehr als Insert, Update und Select brauchen. Alles andere sollte in den SQL-Anweisungen selbst passieren können.
Einfaches Beispiel: Die mssql_*-Funktionen bieten keine Funktion für das Maskieren von Zeichenketten für den SQL-Kontext an. Du darfst Dir diese selbst schreiben. magic_quotes_sybase zu verwenden, ist keine gute Idee.
Danke für die Aufklärung. Ich hoffe das klappt soweit alles. Wenn nicht kann ich ja hier noch mal nachfragen... :)
Hallo,
Wie sieht Deine Konfiguration aus?
[ ] PHP auf gleichem Rechner wie DB-Server
[ ] PHP auf anderem Rechner als DB-Server, aber ebenfalls Windows
[ ] PHP auf unix-artigem Betriebssystem
[ ] PHP auf ganz anderem Betriebssystem, ____________
Ich weiß es noch nicht. Ich schätze aber PHP wird getrennt von der Datenbank sein. Ich weiß es aber nicht.
es ist eine gute Idee, die vorgesehene Produktivumgebung zu wissen und wenigstens eine entsprechende Testumgebung aufzusetzen (mit möglichst ähnlichen Versionen). Es ist ein enormer Unterschied, ob Deine PHP-Umgebung auf einem Windows- oder einem *ix-artigen Betriebssystem zum Einsatz kommen wird. Das solltest Du von vornherein abklären. Unter Windows kannst Du mit dem von Microsoft bereitgestellten Treiber arbeiten, unter *ix geht dies nicht.
Freundliche Grüße
Vinzenz
Du meinst ich brauche extra einen Treiber um von PHP auf MSSQL zugreifen zu können? Ich habe Dienstag einen Termin da könnte ich noch mal nachfragen. Bisher hat man mir gesagt "auf der vorhandenen LAMP / Typo3 Umgebung umsetzen". Also dürfte das ein Linuxserver sein.
Gibt das Probleme?
Hallo Sebastian,
Du meinst ich brauche extra einen Treiber um von PHP auf MSSQL zugreifen zu können? Ich habe Dienstag einen Termin da könnte ich noch mal nachfragen.
Bisher hat man mir gesagt "auf der vorhandenen LAMP / Typo3 Umgebung umsetzen". Also dürfte das ein Linuxserver sein.
Gibt das Probleme?
verschaffe Dir einen Überblick über die Konstellation. Was fällt mir auf die Schnelle ein?
Distribution, Version
apache-Version
PHP-Version
Ausgabe von phpinfo() (nicht kastriert :-))
Typo3-Version
Firmenpolicies bezüglich eingesetzter Software
z.B. Verbot, Pakete, die nicht aus der Paketverwaltung kommen, zu installieren
Windows-Server, Version
MS SQL-Server, Version
Zugriffsmöglichkeiten (standardmäßig ist Zugriff über TCP/IP deaktiviert), ...
Zur Extension: AdoDB scheint übrigens von Typo3 gut unterstützt zu werden.
Am besten heute noch tun:
a) Typo3-System auf Deiner bevorzugten Linuxdistribution installieren.
b) Zugriff für PHP von diesem System auf einen (hoffentlich bereits vorhandenen)
MS SQL-Server einrichten.
Freundliche Grüße
Vinzenz
Hallo Vinzenz,
wir haben vor dem Termin gestern mal auf das phpinfo geschaut und es war kein mssql-plugin installiert. Der Kunde hat zugestimmt das zu installieren.
Heute habe ich aber die Nachricht bekommen: "Bei dem anderen Projekt ist MSSQL gestorben, weil SUSE das nicht plain unterstützt. Es wird dann auf MySQL laufen."
Keine Ahnung wieso das jetzt nicht gehen soll und wieso plötzlich MySQL doch ok ist. Immerhin wollte der Kunde anfangs sogar in asp.net programmieren um MSSQL nutzen zu können.
Naja, jetzt habe ich gerade mal bis 29. Zeit das zu machen weil der Kunde des Kunden diesen Termin gesetzt hat... :)
Aber ich denke das klappt schon...
Danke für die Infos...
Hallo Sebastian,
wir haben vor dem Termin gestern mal auf das phpinfo geschaut und es war kein mssql-plugin installiert. Der Kunde hat zugestimmt das zu installieren.
Wer machts? Du? Trainiere vorher und dokumentiere Dein Training.
Heute habe ich aber die Nachricht bekommen: "Bei dem anderen Projekt ist MSSQL gestorben, weil SUSE das nicht plain unterstützt. Es wird dann auf MySQL laufen."
Keine Ahnung wieso das jetzt nicht gehen soll und wieso plötzlich MySQL doch ok ist.
Warum? Vermutlich deswegen:
- Firmenpolicies bezüglich eingesetzter Software
z.B. Verbot, Pakete, die nicht aus der Paketverwaltung kommen, zu installieren
Naja, jetzt habe ich gerade mal bis 29. Zeit das zu machen weil der Kunde des Kunden diesen Termin gesetzt hat... :)
Viel Erfolg!
Freundliche Grüße
Vinzenz
Hallo Vinzenz,
wir haben vor dem Termin gestern mal auf das phpinfo geschaut und es war kein mssql-plugin installiert. Der Kunde hat zugestimmt das zu installieren.
Wer machts? Du? Trainiere vorher und dokumentiere Dein Training.
Hätte der Kunde gemacht.
Heute habe ich aber die Nachricht bekommen: "Bei dem anderen Projekt ist MSSQL gestorben, weil SUSE das nicht plain unterstützt. Es wird dann auf MySQL laufen."
Keine Ahnung wieso das jetzt nicht gehen soll und wieso plötzlich MySQL doch ok ist.
Warum? Vermutlich deswegen:
- Firmenpolicies bezüglich eingesetzter Software
z.B. Verbot, Pakete, die nicht aus der Paketverwaltung kommen, zu installieren
Also mir hat man nur gesagt dass SUSE MSSQL nicht in plain unterstützt und dass das der Grund wäre. Mit den Protokollen usw kenne ich mich aber nicht aus daher weiß ich nichts damit anzufangen.
Naja, jetzt habe ich gerade mal bis 29. Zeit das zu machen weil der Kunde des Kunden diesen Termin gesetzt hat... :)
Viel Erfolg!
Danke!
Sebastian
Hi!
mit PHP zu MySQL kenne ich mich gut aus.
Das ist von Vorteil für Dein Vorhaben.
Jetzt soll es aber darum gehen von PHP zu einem MS-SQL-Server zuzugreifen. Ist das genauso problemlos möglich wie mit MySQL oder gibt es da etwas zu beachten?
Den Abschnitt über Microsoft SQL Server in der einzigen relevanten Dokumentation zu PHP kennst Du?
off:PP
Hatte ich bisher noch nicht gekannt. Auf den ersten Blick sieht das Ganze ziemlich identisch aus zu Mysql. In den Funktionen muss ja fast auch nur ein y mit einem s ausgetauscht werden.
Solange es da keine anderen Probleme gibt denke ich wird das schon klappen...
Danke!
Hi!
Hatte ich bisher noch nicht gekannt. Auf den ersten Blick sieht das Ganze ziemlich identisch aus zu Mysql. In den Funktionen muss ja fast auch nur ein y mit einem s ausgetauscht werden.
Solange es da keine anderen Probleme gibt denke ich wird das schon klappen...
Beachte bitte unbedingt den Hinweis von Vinzenz - wenn immer es um Datenbanken/SQL geht, ist er hier _die_ Autorität - im positivsten Sinne natürlich!
off:PP
Hallo Sebastian,
mit PHP zu MySQL kenne ich mich gut aus. Jetzt soll es aber darum gehen von PHP zu einem MS-SQL-Server zuzugreifen.
wie gut kennst Du Dich mit T-SQL aus? Es gibt eine Menge Steine, über die Du stolpern kannst, wenn Du vom MySQL-SQL-Dialekt ausgehst.
Freundliche Grüße
Vinzenz
wie gut kennst Du Dich mit T-SQL aus? Es gibt eine Menge Steine, über die Du stolpern kannst, wenn Du vom MySQL-SQL-Dialekt ausgehst.
Ich kenne das alte SQL welches in MSAccess benutzt wird und in MSSQLServer habe ich früher in Verbindung mit MSAccess auch schon mal Cursor usw programmiert.
Aber wie gesagt eigentlich brauche ich eher die Grundfunktionen. Join usw wird ja alles vorhanden sein...