Integer in MySql OHNE Standard=0?

  • Hi
    Ich möchte gern einen Timestamp in miner Tabelle speichern. Da dieser nur aus Zahlen besteht, gebe ich als Typ Int an. Soweit so gut.
    Die INSERT INTO Anweisung läuft auch, denn die anderen Werte werden eingetragen. Nur statt dem Timestamp erscheint eine 0, die bei Standard schon vorgegeben ist. Folglich müsste ich also ein Insert und einen Update Query schicken, was aber viel zu aufwändig wäre.
    Wie bekomme ich es nun also so hin, dass das Feld mit keiner 0 gefüll wird?

  • Wieso willst du eine Spalte mit einem Timestamp haben und diese dann nicht nutzen? Kann aber auch sein, dass ich deine Frage nicht richtig verstanden habe.

  • Die Tabelle ist für eine IP Sperre
    Jede IP, die eingetragen wird bekommt einen Timestamp-Wert. Wenn diese IP wieder aktiv wird, wird überprüft, ob Timestamp-Neu - Timestamp-Alt > Ein Tag in s ist. Dazu brauch ich diesen Wert :wink:

  • Code
    mysql_query("INSERT INTO tabelle (IP,datum) VALUES ('".$_SERVER['REMOTE_ADDR']."',UNIX_TIMESTAMP())") OR die(mysql_error());

    Warum UPDATE wenn du beim INSERT INTO sowieso Werte eintragen kannst?

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Update war nie geplant, nur Insert

    Ich habe nur mit Variablen gearbeitet
    Im Script habe ich die Variablen ermittelt und ungefähr so eingetragen:

    SQL
    INSERT INTO tabelle VALUES ('0', $time, $ip)

    Mit deiner Variante klappt es jedoch

  • Ich habe mir angewöhnt, die ID bei Insert-Query's immer mit anzugeben, der Vollständigkeit halber. Letztendlich wird die 0 zwar überschrieben, aber ich finde es macht den Code übersichtlicher.

    Hier der volle Code

    Code
    $sql="INSERT INTO poll_ips VALUES ('";
    $sql.="0','";
    $sql.=$new_time;
    $sql.="','";
    $sql.=$new_ip;
    $sql.="')";
    
    $result=mysql_query($sql);
  • Zitat von zahlenmeer

    Ich habe mir angewöhnt, die ID bei Insert-Query's immer mit anzugeben


    Ich habe mir angewöhnt, die ID bei Insert-Query's nie anzugeben, wozu auch? Die Spalte auf auto_increment stellen und den Rest macht MySQL.

    Code
    mysql_query($sql) or die ("MySQL-Fehler: " . mysql_error());
  • wieso machst du den INSERT INTO nicht mit namen?!
    is doch viel einfacher
    siehe mein beispiel

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • nicht nur einfach, sondern auch sinnvoller.

    was ist wenn mal spalten dazu kommen bei der tabelle und/oder sich die reihenfolge der spalten ändert.
    spaltennamen sollte man imho immer mit angeben, bei insert- ebenso wie bei select-befehlen