Leerzeichen und Dollarzeichen in SQL Tabelle
kugelschreiber
- datenbank
0 Rouven0 Vinzenz Mai
Hallo Ihr Lieben,
ich habe folgend schwere Aufgabe.
Ich muss aus einer bestehenden Datanbank (MS-SQL) mit PHP Daten auslesen.
Dies klingt nicht schwer, wenn die Struktur und Benennung der Tabellen und Spaltennamen ordnungsgemäß und mit Struktur durchgeführt wurden wäre.
Diese ist nämlich nicht zu ändern
Mein Problem ist also folgendes:
Aus der Datenbank brauche ich momentan nur 4 Spalten aus 3 Tabellen auslesen. Diese lauten:
dbo.test$GEN_SubCategory.ParentCode
dbo.test$GEN_SubCategory.Sequence No_
dbo.test$Vendor Value.Code
Wie Ihr sicherlich schon gesehen habt, befindet sich im Tabellennamen jeweils ein Dollarzeichen, welches ich escapen kann.
Was mache ich aber mit dem Leerzeichen in der dritten Tabelle bei "Vendor Value"
Meine momentane Abfrage lautet:
$SQL =
"SELECT TOP 100
dbo.test$GEN_SubCategory.ParentCode,
dbo.test$GEN_SubCategory.ParentCode,
dbo.test$GEN_SubCategory.Sequence No_,
dbo.test$Vendor Value.CodeValue.Vendor
FROM
dbo.test$GEN_SubCategory,
dbo.test$Vendor Value";
Leider schlägt diese fehl. Nun dacht ich mir es mit [] zu versuchen. Dies scheitert aber auch.
Wer kann mir helfen?
Danke Gruß Kuli
Hello,
$SQL =
"SELECT TOP 100
dbo.test$GEN_SubCategory.ParentCode,
dbo.test$GEN_SubCategory.ParentCode,
dbo.test$GEN_SubCategory.Sequence No_,
dbo.test$Vendor Value.CodeValue.Vendor
FROM
dbo.test$GEN_SubCategory,
dbo.test$Vendor Value";
woher kommen die "" - eigentlich sollte [dbo.test$GEN_SubCategory] schon reichen - aber hattest du nicht vor ein paar Wochen schonmal gefragt? Ich kann es gerade nicht ausprobieren...
MfG
Rouven
Hi,
ich kann mich täuschen, aber hier
[dbo.test$GEN_SubCategory]
fehlt ein PUNKT. Wenn "dbo" das Schema, "test" die Tabelle und "$GEN..." der Spaltenname ist, dann sollte es so vielleicht besser gehen ...
dbo.test.[$Vendor Value]
Ciao, Frank
Hallo,
ich habe folgend schwere Aufgabe.
Ich muss aus einer bestehenden Datanbank (MS-SQL) mit PHP Daten auslesen.
Dies klingt nicht schwer, wenn die Struktur und Benennung der Tabellen und Spaltennamen ordnungsgemäß und mit Struktur durchgeführt wurden wäre.
dbo.test$GEN_SubCategory.ParentCode
dbo.test$GEN_SubCategory.Sequence No_
dbo.test$Vendor Value.CodeWie Ihr sicherlich schon gesehen habt, befindet sich im Tabellennamen jeweils ein Dollarzeichen, welches ich escapen kann.
Das Dollarzeichen ist kein Zeichen, das in T-SQL irgendeine besondere Bedeutung hat. Verwende in PHP einfache Anführungszeichen - und Du hast kein Problem mit dem Dollarzeichen.
Was mache ich aber mit dem Leerzeichen in der dritten Tabelle bei "Vendor Value"
wie im Handbuch und im Forumsarchiv nachzulesen ist, muss dieser Name begrenzt werden. Zulässige Begrenzerzeichen in T-SQL sind die eckigen Klammern und die doppelten Anführungszeichen.
1. Schritt:
Schreibe ein korrektes SQL-Statement. Teste dieses im Client Deiner Wahl, z.B. im SQL-Server Management-Studio.
2. Schritt:
Führe das notwendige Maskieren für PHP durch. Tipp: Verwende Anführungszeichen, die Dir das Leben leichter machen.
Freundliche Grüße
Vinzenz