MySQL DB mit Array befüllen?

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

  • MySQL DB mit Array befüllen?

    Ist es eigentlich möglich einen Query mit einem Array zu befüllen? Wenn man nicht genau weiß wieviele Parameter man eintragen lassen möchte (weil man die selbe Funktion oder Klasse vielleicht später für etwas anderes benutzen will) wäre das ggf. recht hilfreich.

    Ist es irgendwie möglich ein SQL Statement dynamisch zu erstellen bzw. es mit einem Array zu füllen? Wenn ja wie?

    Danke für Antworten.

  • #2
    PHP-Code:
    <?php
     
    function db_insert($table$fields$values) {
      
    $sql 'INSERT INTO ' $table ' (';
      foreach(
    $fields as $table_field) {
       
    $sql .= "'$table_field', ";
      }
      
    // Das ueberfluessige Komma wegmachen
      
    $sql rtrim($sql', ');
      
    $sql .= ') VALUES (';
      foreach(
    $values as $field_value) {
       
    $sql .= "'$field_value', ";
      }
      
    // Wieder das Komma weg
      
    $sql rtrim($sql', ');
      
    $sql .= ')';
      return 
    $sql;
     }
     
    // Testausgabe
     
    $query db_insert('tabelle', array('name''email'), array('Peter''email@provider.tld'));
     echo 
    $query;
    ?>
    Das wäre ein kleiner Ansatz von mir auf die Schnelle. Solltest natürlich noch prüfen ob die übergebenen Daten in $fields und $values wirklich arrays sind und wenn nicht einfach noch ergänzen, das er dann nur nen string verarbeitet...

    Und nicht zu vergessen noch darauf erweitern, das du auch Delete und Update Querys mit Bedingungen machen kannst ;-)
    Zuletzt geändert von mkb_webprint; 16.07.2009, 10:01. Grund: Variable vergessen umzubenennen

    Kommentar


    • #3
      Boah -.- wieso geht das jetzt? Oo
      Ich hatte vorher den Array aufgelöst und dann:
      $sql = "INSERT INTO :tbl (:datensatze) VALUES (:values)";
      und das ging nicht -.- naja egal geht jetzt. Danke.

      Kommentar


      • #4
        Arrays kann man auch direkt ablegen über serialize, nach einem Lesevorgang steht es mit unserialize wieder zur Verfügung.

        Kommentar


        • #5
          Zitat von piratos Beitrag anzeigen
          Arrays kann man auch direkt ablegen über serialize, nach einem Lesevorgang steht es mit unserialize wieder zur Verfügung.
          Man kann vieles. Aber machen sollte man es nicht.

          Kommentar


          • #6
            Oh es kommt immer darauf an was man will und da ist eine solche Lösung manchmal besser als alles Gefummel.

            Kommentar


            • #7
              Zitat von piratos Beitrag anzeigen
              Oh es kommt immer darauf an was man will und da ist eine solche Lösung manchmal besser als alles Gefummel.
              Hatte bis jetzt nie einen Fall, wo das eine bessere Lösung gewesen wäre.

              Kommentar


              • #8
                Es gibt z.B. Situationen wo man so etwas elegant zu cachen nutzen kann.

                Kommentar

                Lädt...
                X