Datenbankeintrag fehlerhaft

UncleB

Mitglied
Hi Leute,
Ich komm gerade einfach nich weiter.
Was ist an diesem insert befehl falsch
PHP:
$sql = "
INSERT INTO trainer
      (from,category,about_descr,detailed_descr,db_insert)
VALUES
      (".$name." ".$mannschaft." ".$ueberschrift." ".$inhalt." '".time()."')";

Ich habs auch schon so geschrieben:
PHP:
$sql = "
INSERT INTO trainer
      (from,category,about_descr,detailed_descr,db_insert)
VALUES
      ('$name' '$mannschaft' '$ueberschrift' '$inhalt' '".time()."')";
Und auch schon die Variablen ohne '.

Bekomm aber immer folgende Fehlermeldung:
Code:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from,category,about_descr,detailed_descr,db_insert) VALUES (tom_waits c ' at line 2

Könnt ihr mir weiter helfen?

Hier das ganze Script
PHP:
<?php

$name = $_POST['name'];
$mannschaft = $_POST['mannschaft'];
$ueberschrift = stripslashes(trim($_POST['ueberschrift']));
$inhalt = stripslashes(trim($_POST['inhalt']));
$db_host  = "localhost";
$db_login = "root";
$db_pwd   = "";
$db_name  = "test";
$db       = mysql_connect($db_host, $db_login, $db_pwd) or die(mysql_error());
$q        = mysql_select_db($db_name, $db)              or die(mysql_error());


$formular = "
<form action=\"".$_SERVER['REQUEST_URI']."\" method=\"post\">\n
Name: <br />\n
<select name=\"name\">\n
<option style=\"border-bottom:1px dotted #888;background-color:#e1e1e1\" value=\"\">W&auml;hle einen Namen</option>\n
<option value=\"max_mustermann\">Max Mustermann</option>\n
<option value=\"christian_huber\">Christian Huber</option>\n
<option value=\"tom_waits\">Tom Waits</option>\n
</select><br /><br /> \n
Mannschaft: <br />\n
<select name=\"mannschaft\">\n
<option style=\"border-bottom:1px dotted #888;background-color:#e1e1e1\" value=\"\">W&auml;hle die Mannschaft</option>\n
<option value=\"a\">A-Jugend</option>\n
<option value=\"b\">B-Jugend</option>\n
<option value=\"c\">C-Jugend</option>\n
<option value=\"d\">D-Jugend</option>\n
<option value=\"e\">E-Jugend</option>\n
<option value=\"f\">F-Jugend</option>\n
<option value=\"g\">G-Jugend</option>\n
</select>\n <br /><br />
&Uuml;berschrift: <br />\n
<input type=\"text\" name=\"ueberschrift\" size=\"30\" value=\"".$ueberschrift."\"/><br /><br />\n
Inhalt: <br />\n
<textarea name=\"inhalt\" cols=\"50\" rows=\"10\">".$inhalt."</textarea><br />\n
<input type=\"submit\" name=\"submit\" value=\"Abschicken\">\n
</form>";



if(!isset($_POST['submit']))
{
    print $formular;
}
else
{
    if (empty($name))
    {
        $error .= "Kein Name ausgewählt<br />";
    }
    if (empty($mannschaft))
    {
        $error .= "Keine Mannschaft ausgewählt<br />";
    }
    if(strlen($ueberschrift)<5)
    {
        $error .= 'Ihre Überschrift ist zu kurz (mind. 5 Zeichen)'."<br />";
    }
    if(strlen($inhalt)<10)
    {
        $error .= "Der Inhalt ist zu kurz (mind. 10 Zeichen)";
    }


    if (!empty($error))
    {
        print $error;

        print $formular;
    }
    else
    {


        print "Eintrag erfolgreich gesendet";

$sql = "
INSERT INTO trainer
      (from,category,about_descr,detailed_descr,db_insert)
VALUES
      (".$name." ".$mannschaft." ".$ueberschrift." ".$inhalt." '".time()."')";





$result = mysql_query($sql) OR
die("Query: <pre>".$sql."</pre>\n".
"Antwoertchen: ".mysql_error());



        // leeren der Variablen um einen doppelten eintrag zu verhindern beim refresh der Seite
        $_POST['inhalt']="";
        $_POST['name']="";
    }
}
?>
 
Wende mysql_real_escape_string() auf deine Variablen an:
PHP:
$sql = '    INSERT INTO
                `trainer`
                (
                    `from`,
                    `category`,
                    `about_descr`,
                    `detailed_descr`,
                    `db_insert`
                )
            VALUES
                (
                    "' .mysql_real_escape_string( $name ). '",
                    "' .mysql_real_escape_string( $mannschaft ). '",
                    "' .mysql_real_escape_string( $ueberschrift ). '",
                    "' .mysql_real_escape_string( $inhalt ). '",
                    "' .time(). '"
                )';
Siehe auch hier: http://www.tutorials.de/forum/relat...15570-mysql-error-1064-beim-speichern-db.html

Danke Loomes, das war die Lösung :)
 
Zurück