Andreas: Array-Werte in Mysql-Query

Hallo!
Wollte nur mal kurz hören wie Ihr sowas macht, wenn ich einen Arraywert der Art $bestellung['Adresse']['Anrede'] in eine MySQL Query schreibe funktioniert das nicht.

Ich denke ich habe 2 Möglichkeiten, entweder mit '.$bestellung['Adresse']['Anrede'].' oder vorher in eine Variable schreiben. Beide Möglichkeiten finde ich nict wirklich obtimal.
Wie macht Ihr das?

Grüße
Andreas

  1. Hi,

    [...] funktioniert das nicht.

    "funktioniert nicht" funktioniert nicht. Fehlerbeschreibung, bitte.

    '.$bestellung['Adresse']['Anrede'].'

    Dass Du den SQL-String mit exakt den gleichen Quotes begrenzt wie die Namen der Array-Werte, ist Dir aber bewusst, oder?

    Wie macht Ihr das?

    Unter Vermeidung von Parsing-Fehlern.

    Cheatah

    1. Hallo!

      "funktioniert nicht" funktioniert nicht. Fehlerbeschreibung, bitte.

      natürlich ein parse Error. Und ich weiß wohl genau wieso.

      '.$bestellung['Adresse']['Anrede'].'

      Ja, ich meinte

      "SELECT ... Andrede = '".$bestellung['Adresse']['Anrede']".',..."

      nur sind das immer ganz schön viele Zeichen, normal reicht ja
      "SELECT ... Andrede = '$Anrede',..."

      udn da wollte ich halt mal fragen wie Ihr das so macht.

      Dass Du den SQL-String mit exakt den gleichen Quotes begrenzt wie die Namen der Array-Werte, ist Dir aber bewusst, oder?

      ja

      Unter Vermeidung von Parsing-Fehlern.

      Klar! Nur wie am einfachsten?

      Grüße
      Andreas

      1. Moin!

        Ja, ich meinte

        "SELECT ... Andrede = '".$bestellung['Adresse']['Anrede']".',..."

        nur sind das immer ganz schön viele Zeichen, normal reicht ja
        "SELECT ... Andrede = '$Anrede',..."

        udn da wollte ich halt mal fragen wie Ihr das so macht.

        Das ist exakt das Minimum an Zeichen, das man für die Bewältigung der Aufgabe benötigt. Nur weil du PHP benutzt heißt das nicht, daß du nicht ein wenig tippen mußt. Wenn du vorher die Array-Elemente einzeln an andere Variablen zuweisen willst, ist das sicher aufwendiger und unübersichtlicher - und braucht ganz gewiß mehr Ausführungszeit im Programmablauf.

        Wenn man den String beim Programmieren ordentlich aufbaut, hat man auch keine Probleme mit der Schachtelung von Anführungszeichen. Ich fange immer mit dem ganz normalen SQL-Befehl an:
        "SELECT irgendwas FROM table WHERE spalte = '' AND spalte2 = ''"

        Da sollen zwei Variablen rein, also wird an der passenden Stelle der String aufgetrennt, indem ich ".." einfüge:
        "SELECT irgendwas FROM table WHERE spalte = '".."' AND spalte2 = '".."'"

        Und zwischen die zwei Punkte kommt dann die gewünschte Variable:
        "SELECT irgendwas FROM table WHERE spalte = '".$_POST['name']."' AND spalte2 = '".$_POST['pizzabelag'][3]."'"

        Und fertig ist der Lack.

        - Sven Rautenberg

        1. Hi!

          Ja, so habe ichs jetzt am Ende auch gemacht, dachte da gäb es vielleicht noch irgend nen Trick, aber Danke Dir!
          Und so unübersichtlich ist es auch nicht, man darf halt nur nicht immer die ganze Query in eine Zeile schreiben ;-)

          Grüße
          Andreas

          1. Und ich hab immer die umständliche Arbeit gemacht, es in einer Variable zu speichern.