kostenloser Webspace werbefrei: lima-city


MySQL setzt nichts ein

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    free-scripts

    free-scripts hat kostenlosen Webspace.

    Hi, ich möchte nach einem Formular das Daten in eine MySQL Tabelle eingetragen werden, der Code sieht so aus:
    <?php
    session_start();
    $username = $_SESSION['username'];
    $oname = $_POST['oname'];
    $timestamp = time();
    $datum = date("d.m.Y - H:i", $timestamp);
    $put_into = mysql_query("INSERT INTO kampagnen VALUES('{$oname}',''{$username}',''{$datum}')");
    ?>

    Aber nichts wird in die Tabelle eingetragen, warum ?

    Beitrag zuletzt geändert: 6.10.2012 18:16:24 von free-scripts
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Schau dir mal genau die ' in deinem SQL an, dann wird es dir gleich auffallen.
    Sonst sagt dir mysql_error(), was nicht funktioniert hat.

    Edit:
    * date braucht keinen Zeitstempel wenn es der aktuelle ist.
    * Dein Script ist anfällig für SQL-Injektionen. Benutze mysql_real_escape_string()

    Beitrag zuletzt geändert: 6.10.2012 18:25:12 von chatter
  4. Also ich mache das bei mir so:

    $dbverbindung = mysql_connect ($host, $user, $password)or die ("Keine Verbindung zu der Datenbank möglich.");
    
    //wenigstens mit nem einfachen real escape
    $oname = mysql_real_escape_string($_POST['oname'], $dbverbindung);
    $username = mysql_real_escape_string($_POST['username'], $dbverbindung); 
    
      
      $put_into = "
      INSERT INTO
        `kampagnen`
        (oname, username)
      VALUES
        ('$oname', '$username')
        //bei evtl. Update noch
        ON DUPLICATE KEY UPDATE oname = '$oname', username = '$username'";


    vieleicht hilft es Dir ja weiter.

    LG

    Beitrag zuletzt geändert: 6.10.2012 18:33:31 von aff3m1tw4ff3
  5. Nichts zum eigentlichen Problem, aber du kannst bei der Tabellenerstellung die Spalte für das Datum auf Timestamp einstellen und als default current_timestamp, also:

    CREATE TABLE testtabelle( [...], datum TIMESTAMP DEFAULT current_timestamp );
  6. Autor dieses Themas

    free-scripts

    free-scripts hat kostenlosen Webspace.

    in der config.php steht schon die verbindung zu meiner datenbank
  7. free-scripts schrieb:
    in der config.php steht schon die Verbindung zu meiner Datenbank


    steht hier nur der Vollständigkeit halber, dann nimm es einfach raus und passe
    $dbverbindung
    an deine config an. Weiß ja nicht wie es bei Dir heißt
  8. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    free-scripts schrieb:
    $put_into = mysql_query("INSERT INTO kampagnen VALUES('{$oname}',''{$username}',''{$datum}')");
    Versuche es mal so:
    $put_into = mysql_query("INSERT INTO `kampagnen` (`oname`, `username`) VALUES ('$oname', '$username')");
    if(!$put_into) die(mysql_error());
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!