Ankündigung

Einklappen
Keine Ankündigung bisher.

mysql_insert

Einklappen

Neue Werbung 2019

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

  • #16
    Wieso ist das ein Workaround? Ob du das Datum jetzt mit PHP oder MySQL erzeugst, ist doch Jacke wie Weste.
    Den zweiten Parameter von date brauchst du nicht zu setzen, wenn du den aktuellen Zeitstempel auswerten möchtest.

    meine ursprüngliche Frage ist: wie kann ich meine selbst gebastelte Funktion dazu bringen ihr fehlverhalten einzustellen?
    Genau so, wie du es jetzt getan hast.
    [URL]http://hallophp.de[/URL]

    Kommentar


    • #17
      Danke für den Tipp mit dem zweiten Parameter.

      Im Rahmen der Änderung meiner Funktion habe ich daran gedacht, dass es ja noch andere SQL-Funktionen gibt ...

      Kommentar


      • #18
        Zitat von hamburger Beitrag anzeigen
        meine ursprüngliche Frage ist: wie kann ich meine selbst gebastelte Funktion dazu bringen ihr fehlverhalten einzustellen?
        Du musst deiner Funktion mitteilen in welchem Kontext sie die Werte zu verarbeiten hat.

        Also ob NOW() nun ein Wert, oder eine Funktion ist, und dementspürechend die Quotes im Insert Befehl weglassen dnen

        "INSERT INTO blah (time) VALUES('NOW()')" ist eben was anderes als "INSERT INTO blah (time) VALUES(NOW())".

        Woher soll deine Funktion das aber wissen wenn du es ihr nicht sagst?
        "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

        Kommentar


        • #19
          Du musst deiner Funktion mitteilen in welchem Kontext sie die Werte zu verarbeiten hat
          und wie mach ich das?

          'NOW()' wird als array verarbeitet aber von mysql nicht.
          NOW() wird von sql verarbeitet aber nicht als array in der funktion

          Kommentar


          • #20
            Zitat von hamburger Beitrag anzeigen
            und wie mach ich das?
            In dem du bspw. zu jedem Wert noch einen zusätzlichen Parameter übergibst, der besagt, ob es sich dabei um Daten oder eine Funktion handelt*.

            Wieso schreibst du eigentlich selbst solche Funktionen, wenn du dir solche Dinge nicht mal selber überlegen kannst?


            (* Bei einer Kombination aus beidem wirst du dann vermutlich wieder vor dem nächsten Problem stehen.)
            [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

            Kommentar


            • #21
              Zitat von hamburger Beitrag anzeigen
              und wie mach ich das?

              'NOW()' wird als array verarbeitet aber von mysql nicht.
              NOW() wird von sql verarbeitet aber nicht als array in der funktion
              Das schreit doch gerade zu nach einer Bedingung... außerdem ist es ein String und kein Array.

              PHP-Code:

              $toAdd 
              = array(
                   
              "id" => array('value' => '1''is_fucntion' false),
                   
              "time" => array('value' => 'NOW()''is_fucntion' true)
              );


                 foreach(
              $toAdd AS &$value) {
                    if (
              $value['is_function']) {
                        
              $value $value['value'];
                    } else {
                        
              $value "'".$value['value']."'";
                    }
                 }
                 
              $values implode(','$toAdd); 
              "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

              Kommentar


              • #22
                so wie die SQL - Functions aussehen hast du doch "leichtes Spiel" .. teste einfach, ob einer der übergebenen Parameter ne öffnende Klammer enthält und dann schreibst du den halt "nackt" - alles andere schreibst du in Apostroph gequotet -

                ALternativ .. da es nur die Datums-spalte betrifft ....

                Erkennst du halt auf deren verschiedene Spalten-namen in der Datenbank und behandelst dann den zu schreibenden Wert entsprechend (zB

                PHP-Code:

                switch ($key) {
                case 
                "datum" 
                     
                sql.="".$value." , ";
                     break;
                default
                     
                sql.="'".$value."', ";
                    break;

                natürlich müsstest du dann noch behandeln, falls es der letzte Parameter ist ....
                "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

                Kommentar

                Lädt...
                X