kugelschreiber: Leerzeichen und Dollarzeichen in SQL Tabelle

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

  1. 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

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Wenn du die Nadel im Heuhaufen nicht findest, zünde den Heuhaufen an.
    1. 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

  2. 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.Code

    Wie 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