Serialized Array formatieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Serialized Array formatieren

    Hi,

    ich moechte eine Array in einer DB abspeichern. das macht man ja mit serialize. Ich verwende also momentan den folgenden Befehl:
    PHP-Code:
    mysql_escape_string(serialize($arr_orte)) 
    In der DB steht nun das Array beim Auslesen habe ich jedoch Anfuehrungszeichen. z.B. "Hamburg" "Berlin"

    Ich moechte das jetzt nicht beim Auslesen entfernen, sondern gleich beim Reinschreiben in die DB verhindern. Was muss ich statt oder zusaetzlich zu mysql_escape_string verwenden, um das rauszufiltern?

    Hat jemand einen Rat?

    Vielen Dank im Voraus,

    Gruss Luka

  • #2
    Re: Serialized Array formatieren

    Original geschrieben von Luka
    In der DB steht nun das Array beim Auslesen habe ich jedoch Anfuehrungszeichen. z.B. "Hamburg" "Berlin"
    Und wie machst du das "Auslesen"?
    Ich moechte das jetzt nicht beim Auslesen entfernen, sondern gleich beim Reinschreiben in die DB verhindern.
    Nein, das willst du vermutlich nicht - dann würde nämlich das Rückgängigmachen der Serialisierung potentiell schiefgehen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hi,

      das Auslesen mache ich natuerlich mit unserialize(DBFeld), ohne weitere Befehle.

      das serialized Feld in der DB hat echt n Menge Anfuehrungszeichen drin. Es geht doch bestimmt auch ohne. Wenn ich z.B. mysql_escape_string weglasse, wird gar nichts in die DB geschrieben. Man kann bzw. muss bestimmt noch einen weiteren Befehl verwenden, um nun auch noch die " wegzubekommen.

      Eine Idee?

      Luka

      Kommentar


      • #4
        Ich wette das Array besteht aus POST-Werten die schon falsch escaped sind...
        print_r auf das Array vor serialize hilft~

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Original geschrieben von Luka
          das serialized Feld in der DB hat echt n Menge Anfuehrungszeichen drin.
          Testausgabe?
          Man kann bzw. muss bestimmt noch einen weiteren Befehl verwenden, um nun auch noch die " wegzubekommen.
          Halte ich nicht für sinnvoll, bzw. vermutlich in Bezug auf die Unserialisierung sogar für kontraproduktiv.


          Vielleicht hast du auch nur ein magic_quotes-Problem ...?
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Also das DB Feld sieht so aus:

            PHP-Code:
            a:3:{s:6:"ort_1";s:4:""Hamburg"";s:6:"ort_2";s:6:""Berlin"";s:6:"ort_3";s:9:""Hamm"";} 
            Man sieht also die "" da bereits drin. Ich denke mal das ein paar verschwinden muss, aber wie?

            Gruss Luka

            Kommentar


            • #7
              @Luka
              Wurden dir doch schon mehrere Tipps gegeben was du noch machen solltest wie z.B.
              Ich wette das Array besteht aus POST-Werten die schon falsch escaped sind...
              print_r auf das Array vor serialize hilft~
              oder
              Vielleicht hast du auch nur ein magic_quotes-Problem ...?
              Warum machst du das nicht und postest deine Erfahrungen ?

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Das von ghostgambler sehe ich erst jetzt, tut mir Leid.

                Also hier das Array:

                PHP-Code:
                Array ( [comp_1] => "Hamburg" [comp_2] => "Berlin" [comp_3] => "Hamm" 
                Oh man ich Trottel, natuerlich sind die hier falsch. Habe meinen Fehler bereits gefunden, einfach zu kompliziert gedacht....
                (Das zuweisen der Werte in das Array war falsch)

                Ich danke Euch vielmals fuer die Denkanstoesse.

                Gruss Luka

                Kommentar

                Lädt...
                X