AnnaA: Anführungszeichen in MySQL Query

Hallo,

ich möchte gerne ein Array in eine MySQL DB speichern.
Dafür wandele ich es per serialize() um und versuche dann es per
Query abzuspeichern. Allerdings wird das Query einfach nicht durchgeführt.

Ich tippe, dass es daran liegt, dass in meinem geserializeten String Anführungszeichen drinstehen.
(Bsp für den gesirializten String: a:2:{s:11:"zugeordnete";a:4:{s:3:"see";s:3:"jup";s:3:"new";s:3:"jup";s:4:"edit";s:3:"jup";s:3:"del";s:3:"jup";}s:5:"alles";a:4:{s:3:"see";s:3:"jup";s:3:"new";s:3:"jup";s:4:"edit";s:3:"jup";s:3:"del";s:3:"jup";}}

Habt ihr eine Idee, was ich damit machen muss, dass es durch mein Query läuft?

Mein Query:
<?
  MYSQL_CONNECT($server, $user, $passwort) or die ( "FEHLER beim Konnektieren!");
  MYSQL_SELECT_DB($DB) or die ("FEHLER Datenbank nicht da!");

$kalender = serialize($kalender);
  echo $kalender;
  $result = MYSQL_QUERY("insert into " . $table_prefix . "_auth_groups (kalender) values (" . $kalender . ")");
  echo $result;
  MYSQL_CLOSE();
?>

Danke für Eure Hilfe,
Anna

  1. Hi!

    Ich tippe, dass es daran liegt, dass in meinem geserializeten String Anführungszeichen drinstehen.
    (Bsp für den gesirializten String: a:2:{s:11:"zugeordnete";a:4:{s:3:"see";s:3:"jup";s:3:"new";s:3:"jup";s:4:"edit";s:3:"jup";s:3:"del";s:3:"jup";}s:5:"alles";a:4:{s:3:"see";s:3:"jup";s:3:"new";s:3:"jup";s:4:"edit";s:3:"jup";s:3:"del";s:3:"jup";}}

    Habt ihr eine Idee, was ich damit machen muss, dass es durch mein Query läuft?

    Was hälst Du von: http://www.php3.de/manual/de/function.mysql-escape-string.php?

    Grüße
    Andreas

    1. Hallo Andreas,

      das hatte ich auch schon ausprobiert, allerdings ändert das nichts daran, dass es mir das Query ohne Fehlermeldung einfach nicht durchführt.

      Gruß Anna

      1. Hi!

        das hatte ich auch schon ausprobiert, allerdings ändert das nichts daran, dass es mir das Query ohne Fehlermeldung einfach nicht durchführt.

        Dann verwende es trotzdem auf alle Fälle und ändere die Query wie folgt:

        $result = MYSQL_QUERY("insert into $table_prefix_auth_groups (kalender) values ('$kalender')");

        und dann ein

        echo mysql_error();

        am besten mal bevor Du die Query änderst damit Du verstehst was MySQL für ein Problem hatte!

        Grüße
        Andreas

        1. Hallo Andreas,

          habe jetzt mal Dein Query eingebaut, hilft aber auch nix. Die Fehlermeldung lautet:

          You have an error in your SQL syntax near '(kalender) values ('a:2:{s:11:"zugeordnete";a:4:{s:3:"see";s:3:"jup";s:3:' at line 1

          Der durch das escape_string enstandene String (der ans Query übergeben wird) sieht folgendermaßen aus:

          a:2:{s:11:"zugeordnete";a:4:{s:3:"see";s:3:"jup";s:3:"new";s:3:"jup";s:4:"edit";s:3:"jup";s:3:"del";s:3:"jup";}s:5:"alles";a:4:{s:3:"see";s:3:"jup";s:3:"new";s:3:"jup";s:4:"edit";s:3:"jup";s:3:"del";s:3:"jup";}}

          Danke für Deine nette Hilfe :-)

          Viele Grüße,
          Anna

          1. Hi!

            Hm, das verstehe ich nicht. Ich sehe keinen Fehler in der Query. Gebe mal Deinen präfix direkt an und schreibe das SQL-Statement in eine Variable und gebe eben diese auch aus:

            $sql = "
            insert
            into
              deinprefix_auth_groups
            (kalender)
            values
            ('$kalender')
            ";

            mysql_query($sql);
            echo mysql_error()."<br><br>";
            echo $sql;

            Versuch es mal alternativ mit:

            $sql = "
            insert
            into
              deinprefix_auth_groups
            SET
            kalender

            '$kalender'
            ";

            Die Absätze damit man die genaue Zeile des Fehlers bekommt.

            Grüße
            Andreas

            1. Hallo Andreas,

              Du hattest das Query ja auch bei meinem Prefix geändert. Diese Änderung habe ich jetzt rückgängig gemacht, aber hinten Dein Query gelassen:

              $mein_query = "insert into " . $table_prefix . "_auth_groups (kalender) values ('$kalender')";

              Jetzt klappt es!

              Super, danke für die Hilfe!

              Anna

              1. Hi!

                Du hattest das Query ja auch bei meinem Prefix geändert. Diese Änderung habe ich jetzt rückgängig gemacht, aber hinten Dein Query gelassen:

                Ja, hatte ich hinterher auch gesehen, war nicht so schlau - wobei ich da den Fehler nicht wirklich verstehem er müsste Sagen unknown Table oder sowas, naja, wenns jetzt läuft ist ja gut ;-)
                Merke Dir nur die Vorgehensweise für nächste mal, vor allem die Verwenung von mysql_error(), und auch das einfügen von Zeilenumbrüchen hilft die fehlerhafte Stelle einzukreisen...

                Grüße
                Andreas