marcus: SQL-Insert funktioniert nicht!!!

Hallo!

Ein simplesGästebuch, aber es will und will die Daten aus dem Formular nicht in die Datenbank einfügen!

Eigentlich funktioniert alles andere, nur meine Zeile:
or die("Insert Failed:" . $query);
gibt mir immer "Insert Failed:INSERT INTO randelmanGB (name, mail, text, time) VALUES ('Peter', 'peter@mail.at', 'Der tolle Text', now() )" zurück!

sieht vielleicht irgendwer, warum?

danke!, marcus

mein code:

<html>
<head><title></title></head>
<body>

<?
if ($REQUEST_METHOD=='POST') {
   if ($name && $text ) {
      $query = "INSERT INTO randelmanGB (name, mail, text, time) VALUES ('$name', '$mail', '$text', now() )";
   @mysql_pconnect("xxx","xxx","xxx")
                   or die("Unable to connect to SQL server");
    // mysql_select_db("xxx") or die("Unable to select database");
    mysql_query($query) or die("Insert Failed:" . $query);
} }
if ($submission==0){

$query = "SELECT * FROM randelmanGB order by time DESC";
   @mysql_pconnect("xxx","xxx","xxx")
                   or die("Unable to connect to SQL server");
    mysql_select_db("xxx") or die("Unable to select database");
   $entries= mysql_query($query);
?> <a href="gb.php?submission=1">SIGN GUESTBOOK</a><br><br><?
   if ($entries) {
   while ($entry = mysql_fetch_assoc($entries))
   {
   ?>
         <br> name:<? echo $entry[name]; ?> <br>
      email:<a href="mailto:<? echo $entry[mail];?>"><? echo $entry[mail];?></a> <br>
      <? echo $entry[time]; ?>
      text:<i><? echo $entry[text]; ?></i> <br>
   <? }}
   else {echo "NO ENTRIES FOUND";}

} elseif($submission==1) { ?>

<form method="post">
name:<input type="Text" name="name" value="" size="20" maxlength="30"><br>
mail:<input type="Text" name="mail" value="" size="20" maxlength="30"><br>
text:<input type="Text" name="text" value="" size="20"><br>
<input type="Reset" name="reset" value="reset">
<input type="Submit" name="submit" value="send">
</form>

<? } ?>

</body>
</html>

  1. Hallo!

    Ein simplesGästebuch, aber es will und will die Daten aus dem Formular nicht in die Datenbank einfügen!

    Eigentlich funktioniert alles andere, nur meine Zeile:
    or die("Insert Failed:" . $query);
    gibt mir immer "Insert Failed:INSERT INTO randelmanGB (name, mail, text, time) VALUES ('Peter', 'peter@mail.at', 'Der tolle Text', now() )" zurück!

    sieht vielleicht irgendwer, warum?

    danke!, marcus

    mysql_query($query) or die("Insert Failed:" . $query);

    Hi

    Ich habe es mir jetzt nicht so genau angeschaut, aber statt $query könntest du auch mysql_error() zurückgeben, dann gibt eir eine Fehlermeldung vielleicht selbst aufschluß.

    Heizer

  2. Hallo!

    Ein simplesGästebuch, aber es will und will die Daten aus dem Formular nicht in die Datenbank einfügen!

    Eigentlich funktioniert alles andere, nur meine Zeile:
    or die("Insert Failed:" . $query);
    gibt mir immer "Insert Failed:INSERT INTO randelmanGB (name, mail, text, time) VALUES ('Peter', 'peter@mail.at', 'Der tolle Text', now() )" zurück!

    Hallo Marcus,

    hm, sieht für mich so aus, wie wenn er nix mit now() anfangen könnte.
    Is das ne PHP-Funktion für die aktuelle Zeit?

    Gruss Kerstin

    1. Hallo!

      Ein simplesGästebuch, aber es will und will die Daten aus dem Formular nicht in die Datenbank einfügen!

      Eigentlich funktioniert alles andere, nur meine Zeile:
      or die("Insert Failed:" . $query);
      gibt mir immer "Insert Failed:INSERT INTO randelmanGB (name, mail, text, time) VALUES ('Peter', 'peter@mail.at', 'Der tolle Text', now() )" zurück!

      Habs mir nochmal angeschaut, und ich würde mal versuchen, die Spaltennamen (also die erste Klammer) jeweils in hochkommata ` zu setzten. Ich denke, 'time' ist ein MySQL Schlüsselwort, bin mir aber nicht ganz sicher.

      Hallo Marcus,

      hm, sieht für mich so aus, wie wenn er nix mit now() anfangen könnte.
      Is das ne PHP-Funktion für die aktuelle Zeit?

      NOW() ist MySQL-Syntax für die Aktuelle Zeit und funktioniert bei mir wunderbar. ich schreibe das immer groß wie alle MySQL-Befehle, aber soweit ich weiß macht das keinen Unterschied.

      Gruss Kerstin

      gruß Heizer

  3. Hi!

    Ich würde das mal wie folgt versuchen:

    $query = "
    INSERT INTO
      randelmanGB (
        name,
        mail,
        text,
        time)
      VALUES (
       '$name',
       '$mail',
       '$text',
       now() )";

    @mysql_pconnect("xxx","xxx","xxx")
                       or die("Unable to connect to SQL server");
        // mysql_select_db("xxx") or die("Unable to select database");
        mysql_query($query) or die("Bei dem Versuch einen Datensatz einzufuegen ist ein Fehler aufgetreten.<br>\nFehler-Nummer:<b>".$
    mysql_errno()."</b><br>\nFehler-Ausgabe:<b>".mysql_error()."</b>");

    Zum einen bekommst Du ggfs. die eine PHP-Fehlermeldung mit der Zeile des Fehlers, oder mit ei9ner genauen MySQL Fehlerbeschreibung.

    ich vermute auch das Du vielleicht sogar mehrere Schlüsselwörter verwendet hast, weiß nicht gernau ob/wie man evtl die Schlüsselwörter maskieren kann.

    MySQL reservierte Wörter: http://www.little-idiot.de/mysql/mysql-136.html