Datum von php an mysql übergeben?

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von ThaHammer, 29.07.2006.

  1. ThaHammer

    ThaHammer Thread Starter MacUser Mitglied

    Beiträge:
    3.276
    Zustimmungen:
    13
    MacUser seit:
    01.06.2004
    Habe versucht mittels php das Datum an mysql zu übergeben, aber irgendwo ist da der Wurm drin.

    Code:
    $datum = date("d.M.Y");
    
    $sql = "INSERT INTO table (name, email, url, inhalt, datum) VALUES ('$_POST[name]', '$_POST[email]', '$_POST[url]', '$_POST[inhalt]', '$datum');";
    
    Leider funktioniert das so nicht, hat irgend jemand ne Idee wie das geht?
    Leider habe ich die Tage kaum zeit selber gross zu suchen, müsste es aber dringenst in mein Gästebuch einbauen.
     
  2. Pinacolada

    Pinacolada MacUser Mitglied

    Beiträge:
    419
    Zustimmungen:
    41
    MacUser seit:
    26.04.2005
    es handelt sich um ein datetime feld?

    dann benutze in mysql einfach NOW()

    $sql = "INSERT INTO table (name, email, url, inhalt, datum) VALUES ('$_POST[name]', '$_POST', '$_POST[url]', '$_POST[inhalt]', NOW());";

    edit:

    btw. du programmierst etwas unsauber, richtig wäre:
    $_POST["name"] anstatt $_POST[name]

    weiterhin solltest du dich nicht immer auf magic_quotes verlassen :), das kann auf manchen servern abgeschaltet sein.
     
  3. hoppelmoppel

    hoppelmoppel MacUser Mitglied

    Beiträge:
    518
    Zustimmungen:
    2
    MacUser seit:
    12.04.2006
    Was is den datum in der db für nen typ, wennns nen einfacher string is sollts scho gehn. Was kommt für ne Fehlermeldung?
     
  4. 2nd

    2nd MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    MacUser seit:
    25.07.2004
    Der Typ eines Datums in einer mySQL DB ist u. a. "date". Kann numerische Werte oder Zeichenketten aufnehmen.

    2nd
     
  5. ThaHammer

    ThaHammer Thread Starter MacUser Mitglied

    Beiträge:
    3.276
    Zustimmungen:
    13
    MacUser seit:
    01.06.2004
     
  6. ThaHammer

    ThaHammer Thread Starter MacUser Mitglied

    Beiträge:
    3.276
    Zustimmungen:
    13
    MacUser seit:
    01.06.2004
    Now mag er nicht, dann kommt ein Fehler!
     
  7. ThaHammer

    ThaHammer Thread Starter MacUser Mitglied

    Beiträge:
    3.276
    Zustimmungen:
    13
    MacUser seit:
    01.06.2004
    Denke es liegt an mysql selber. Wahrscheinlich habe ich das Feld Datum falsch angelegt?

    Code:
    ALTER TABLE `table` ADD `datum` DATE NOT NULL ;
    
    hatte das Datum nachträglich hinzugefügt, weil ich es dann doch brauchte!
     
  8. master_p

    master_p MacUser Mitglied

    Beiträge:
    1.065
    Zustimmungen:
    23
    MacUser seit:
    31.01.2005
    Nein es liegt nicht an MySQL. Du erstellst ein Datum im Format 'dd.mm.yyyy' und MySQL erwartet ein Datum im Format 'yyyy-mm-dd'. Du solltest Deine date()-Funktion auf
    Code:
    date('y-m-d')
    ändern. Ansonsten (wie schon gesagt) einfach die MySQL-Funktion NOW() nutzen, die eigentlich überall gehen sollte. Vielleichst postest Du mal Deinen Query. Er sollte auf jeden Fall OHNE Anführungszeichen beim NOW() gehen, also:
    Code:
    $query = "INSERT INTO table SET field1='$field1', date=NOW()";
    Ach und Du solltest übrigens mit SET arbeiten bei den Variablen. Dann funktioniert Dein Query nämlich auch später noch, wenn die Tabelle mal erweitert werden sollte.
     
  9. ThaHammer

    ThaHammer Thread Starter MacUser Mitglied

    Beiträge:
    3.276
    Zustimmungen:
    13
    MacUser seit:
    01.06.2004
    Code:
    $sql = "INSERT INTO table (name, email, url, inhalt, datum) VALUES ('$_POST[name]', '$_POST[email]', '$_POST[url]', '$_POST[inhalt]', NOW());";
    
    Der Query den ich ausprobiert hatte. Die anderen Sachen werde ich gleich mal ausprobieren! Danke schonmal.:)
     
  10. ThaHammer

    ThaHammer Thread Starter MacUser Mitglied

    Beiträge:
    3.276
    Zustimmungen:
    13
    MacUser seit:
    01.06.2004
    Es lag nur am Date (y.m.d), das war alles! Jetzt geht es! Danke für euere Hilfe!
     
Die Seite wird geladen...