Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehlermeldung bei übergabe eines Array an DB-Insert

Einklappen

Neue Werbung 2019

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

  • #16
    Verstänlicherweise suchst du nach einer schnellen Lösung. Das sollte aber nicht dein Ziel sein. Dein Ziel sollte sein zu verstehen wie man etwas umsetzt.
    Du hast da noch etwas Lernbedarf in folgenden Dingen, die du dir mal im Einzelnen genau ansehen solltest
    • Foreach Schleifen insbesondere key und value auslesen
    • SQL prepared Statements und einzeln abgeschickte Abfragen, also nur exec
    • den Unterschied zwischen einer einzlnenen Abfraga in SQL und einer multiplen Abfrage
    • Wann man prepared Statements einsetzt und warum

    Dies findest du alles im Handbuch erklärt und in vielen Tutorials im Netz.
    Das solltest du dir erst mal ansehen, dann kannst du das hinterher auch alleine lösen.

    Kommentar


    • #17
      Leider lerne ich aus starren texten nichts, ich lerne es nur wenn ich funktionierenden Code vor der nase habe.
      Ja du verstehst mich richtig ich möchte das Array in meine MySQL tabelle schreiben. Die werte des arrays existieren in meiner MySQL-Tabelle.

      Könntest du mir vllt ein funktionsfähiges beispiell geben? es muss ja nicht auf meinen Code bezogen sein, mir reicht schon ein allgemeines beispiel das mit anpassungen lauffähig wäre.

      Danke

      Kommentar


      • #18
        Zitat von Kimahri88 Beitrag anzeigen
        Leider lerne ich aus starren texten nichts, ich lerne es nur wenn ich funktionierenden Code vor der nase habe.
        Könntest du mir vllt ein funktionsfähiges beispiell geben?
        Bitte beachten! Inserate, Konzepte und Meinungsumfragen

        Derzeit scheinen Inserate und fadenscheinige Hinweisfragen Konjunktur zu haben. In den meisten Fällen sind es aber eher doch „Wer-macht-mir“-Fragen.

        - „Wer kann mir erklären…“
        - „Hat jemand eine Idee, wie ich…“
        - „Wie setzt man am besten XY um…“
        - „Suche Tipps, Hilfe oder am besten Codebeispiele zu XY…“
        - „Ich suche eine Software wie diese…“
        - „Ich verstehe das Tutorial nicht. Kann mir mal jemand vormachen… ich lerne so am besten…“

        …gehören nicht in die Programmiererforen!

        Wir sind kein Hausaufgaben-/ oder Googleservice, keine Kaufberatung, nicht der Erklärbär! Wir sind auch kein Bestellservice für individuelle Tutorials.

        ...

        Wenn du es lassen machen willst, dann gibt kurz bescheid, dann verschiebe ich das gerne in die Scriptbörse.

        LG
        The string "()()" is not palindrom but the String "())(" is.

        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #19
          Somit werden also Personen wie ich die aus einem Beispiel mehr lernen als aus einem starren Wiki benachteiligt. Ich möchte ja kein beispiel das sich zu 100% auf meinen code bezieht sondern eher ein beispiel das im allgemeinem passt.

          Bei mir ist es halt learning by doing und nicht die theorie!

          Kommentar


          • #20
            Du hast ja beschrieben bekommen was das Problem ist. Versuch es umzusetzen.

            Kommentar


            • #21
              PHP-Code:
              $db = new PDO('mysql:host=localhost;dbname=test;charset=utf8''root''', [
                  
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
              ]);

              $db->query("
                  CREATE TEMPORARY TABLE temp (
                      id INT NOT NULL AUTO_INCREMENT,
                      foo VARCHAR(255) NOT NULL,
                      bar VARCHAR(255) NOT NULL,
                      PRIMARY KEY (id)
                  )
              "
              );

              $rows = [
                  [
              'foo' => 'A''bar' => 'a'],
                  [
              'foo' => 'B''bar' => 'b'],
                  [
              'foo' => 'C''bar' => 'c']
              ];

              $stmt $db->prepare("
                  INSERT INTO temp (`" 
              implode("`, `"array_keys($rows[0])) . "`)
                  VALUES (" 
              implode(", "array_fill(0count($rows[0]), "?")) . ")
              "
              );

              foreach (
              $rows as $row) {
                  
              $stmt->execute(array_values($row));
              }

              // test
              $result $db->query("SELECT id, foo, bar FROM temp");
              print_r($result->fetchAll(PDO::FETCH_ASSOC));

              /*

              Array
              (
                  [0] => Array
                      (
                          [id] => 1
                          [foo] => A
                          [bar] => a
                      )

                  [1] => Array
                      (
                          [id] => 2
                          [foo] => B
                          [bar] => b
                      )

                  [2] => Array
                      (
                          [id] => 3
                          [foo] => C
                          [bar] => c
                      )

              )

              */ 

              Kommentar


              • #22
                Danke für das Beispiel, hiermit konnte ich es umsetzen!

                Kommentar


                • #23
                  Schönes Beispiel hellbringer. Ist was zum Weglegen für ähnliche Fragen zum Thema PDO wie sie hier immer wieder auftauchen.
                  Da PDO auch den Vorzug hat nahezu unabhängig von der Datenbank zu sein, hab ich es mal für SQLite modifiziert damit es als PHP-Fiddle läuft.

                  Beispiel in der Sandbox.

                  Kommentar


                  • #24
                    Wenn ich mal Zeit finde, dann ergänz ich das in dem PDO-Beitrag in der Wissensammlung. Passt gut zu den "Prepared Statements" rein..
                    The string "()()" is not palindrom but the String "())(" is.

                    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                    PHP.de Wissenssammlung | Kein Support per PN

                    Kommentar


                    • #25
                      Ist aufgenommen. https://php-de.github.io/jumpto/pdo/#insert-from-array
                      The string "()()" is not palindrom but the String "())(" is.

                      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                      PHP.de Wissenssammlung | Kein Support per PN

                      Kommentar

                      Lädt...
                      X