Ankündigung

Einklappen
Keine Ankündigung bisher.

mysql_insert

Einklappen

Neue Werbung 2019

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

  • mysql_insert

    Hallo ich habe folgende Funktion die auch prima läuft soweit ich direkte Werte angebe.

    PHP-Code:
    $dbToAdd = array('to_id'=>$bildID'comment' =>$comment'commenter_name' =>$name);
    $result insertIntoDB('kommentare'$dbToAdd); 
    läuft gut.

    sobald ich aber Funktionen wie NOW() übergeben möchte gehts nicht mehr:
    PHP-Code:
    $dbToAdd = array('to_id'=>$bildID'comment' =>$comment'commenter_name' =>$name'dateset' =>NOW()); 
    meine Funktion:
    PHP-Code:
    function mysql_insert($table$toAdd){

       
    $fields implode(array_keys($toAdd), ',');
        
    $values "'".implode(array_values($toAdd), "','")."'"# better

       
    $q 'INSERT INTO `'.$table.'` ('.$fields.') VALUES ('.$values.')';
       
    $res mysql_query($q);

       return 
    $res;

    kann mir jemand helfen wie ich die NOW() richtig ins Array übergebe?

  • #2
    Zitat von hamburger Beitrag anzeigen
    sobald ich aber Funktionen wie NOW() übergeben möchte gehts nicht mehr
    Bitte erläutern. Fehlermeldungen?

    Zitat von hamburger Beitrag anzeigen
    kann mir jemand helfen wie ich die NOW() richtig ins Array übergebe?
    Was soll das bewirken? Ich kenne keine PHP-Funktion namens NOW.
    Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden

    Kommentar


    • #3
      NOW() ist eine MySQL Funktion und da diese wohl im Query eingefügt werden soll und der Query nun einmal in PHP nichts wieter als ein String ist erscheint es naheliegen den Funktionsaufruf als String in das Array zu schreiben.
      "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

      Kommentar


      • #4
        Danke Dark Guardian,
        Das geht aber auch nicht: (NOW() in Anführungszeichen)
        PHP-Code:
        $dbToAdd = array('to_id'=>$bildID'comment' =>$comment'commenter_name' =>$name'dateset' =>'NOW()'); 

        Kommentar


        • #5
          Wie sieht dein Query aus?
          Code:
          echo $q;
          [URL]http://hallophp.de[/URL]

          Kommentar


          • #6
            echo mit 'now()':
            PHP-Code:
            NSERT INTO `kommentare` (to_id,sub,comment,commenter_name,commenter_email,commenter_url,commenterId,notify_me,datesetVALUES ('123','241','hallo','ich bins','','','10000000','0','NOW()'
            echo mit now():
            Fatal error: Call to undefined function now() in /www/htdocs/w00b4eb5/autofocus.php on line 184

            Kommentar


            • #7
              line 184 ist

              PHP-Code:
                 $dbToAdd = array('to_id'=>$bildID'sub'=>$subID'comment' =>$comment'commenter_name' =>$name'commenter_email' =>$email,
                            
              'commenter_url' =>$url'commenterId' =>$commenterID'notify_me' =>$notify'dateset' =>NOW()); 

              Kommentar


              • #8
                Und was sagt [MAN]mysql_error[/MAN] dazu?

                Debugging:SQL - PHP.de Wiki

                [edit] Wieso arbeitest du an dieser Stelle
                Code:
                'dateset' => 'NOW()'
                überhaupt mit einer MySQL - Funktion und erzeugst das Datum/den Zeitstempel nicht gleich mit den PHP-Funktionen?
                [URL]http://hallophp.de[/URL]

                Kommentar


                • #9
                  es gibt keinen sql-error da in line 184 bereits hängen bleibe.
                  die funktion now() gibts ja nicht.
                  muss diese also als string ans array übergeben und dort muss der string als funktion erkannt werden.

                  Kommentar


                  • #10
                    Nochmal: Warum nutzt du dafür keine PHP-Funktion?

                    es gibt keinen sql-error da in line 184 bereits hängen bleibe.
                    Dann führ das Script noch mal mit den Anführungszeichen um die Funktion aus.
                    [URL]http://hallophp.de[/URL]

                    Kommentar


                    • #11
                      Datum/den Zeitstempel nicht gleich mit den PHP-Funktionen
                      guter hinweis. gibts eine php funktion die das datum im gleichen format setzt wie now().
                      (now() benutze ich sonst überall und möchte nicht zwei verschiedene datumsformate in db haben)

                      Kommentar


                      • #12
                        Mit [MAN]date[/MAN] oder [MAN]strftime[/MAN] kannst du den Zeitstempel beliebig formatieren.
                        [URL]http://hallophp.de[/URL]

                        Kommentar


                        • #13
                          Dann führ das Script noch mal mit den Anführungszeichen um die Funktion aus.
                          dann wird 'now()' an die db übergeben die mit dem wert nichts anfangen kann da table auf date gesetzt ist, ist das datum 000000

                          Datum/den Zeitstempel nicht gleich mit den PHP-Funktionen
                          guter hinweis. gibt es eine funktion die das datum im gleichen format erzeugt wie now()?
                          benutze sonst immer now() und möchte nicht unterschiedliche einträge in db haben.

                          Kommentar


                          • #14
                            Das Fehlverhalten liegt hier an deiner selbst gebastelten Funktion die alle Array-"Werte" automatisch als Feld-Werte ansieht und somit die Funktion als Wert in den Query schreibt und nicht als Funktionsaufruf.

                            Wie Asipak schon gesagt hat hilft es hier das Datum via PHP zu erzeugen und direkt zu speichern.

                            guter hinweis. gibts eine php funktion die das datum im gleichen format setzt wie now().
                            (now() benutze ich sonst überall und möchte nicht zwei verschiedene datumsformate in db haben)
                            Mit date oder strftime kannst du den Zeitstempel beliebig formatieren.
                            Wurde schon beantwortet.
                            "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

                            Kommentar


                            • #15
                              PHP-Code:
                              'dateset' =>date('Y-m-d H:i:s'time()) 
                              funktioniert.
                              Ist aber eigentlich nur ein work-around.

                              Das Fehlverhalten liegt hier an deiner selbst gebastelten Funktion die alle Array-"Werte" automatisch als Feld-Werte ansieht und somit die Funktion als Wert in den Query schreibt und nicht als Funktionsaufruf.

                              meine ursprüngliche Frage ist: wie kann ich meine selbst gebastelte Funktion dazu bringen ihr fehlverhalten einzustellen?




                              thx

                              Kommentar

                              Lädt...
                              X