Finde den Fehler nicht

max33100

Grünschnabel
Hier ein ganz einfacher Code zum eintragen in die MySQL Datenbank. Funktioniert aber anscheind nicht, weiß aber nicht woran das liegen könnte. Bitte um Hilfe.

PHP:
include("database.php");
include("login.php");

$gid = $_GET['id'];
$mid = $_SESSION['id'];
$val = time();

$eintrag = "INSERT INTO anfrage (to, from, val, type) VALUES ('$gid', '$mid', '$val', '1')";
$eintragen = mysql_query($eintrag);
 
1.) Niemals Daten von außen einfach so in die Datenbank einfügen!
Dies ist eine große Sicherheitslücke, daher unbedingt [phpf]mysql_real_escape_string[/phpf] nutzen o.Ä.
Siehe auch mein Tutorial: Sicherheit in PHP-Codes schaffen

2.) Ansonsten ändere deine PHP-Code mal so ab und poste ggf. die Fehlermeldung:
PHP:
$eintragen = mysql_query($eintrag) or die(mysql_error());
 
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 'to, from, val, type) VALUES ('2', '1', '1328117876', '1')' at line 1

Das heißt?
 
Versuche mal die Spaltennamen (v.a. "from") in Backticks zu setzen:
PHP:
$eintrag = "INSERT INTO anfrage (`to`, `from`, `val`, `type`) VALUES ('$gid', '$mid', '$val', '1')";




PS: Herzlich Willkommen auf tutorials.de ;)
 
Wenn die Felder vom Typ INT sind, brauchst du keine ' Anführungszeichen.
Möglicherweise ist auch eine Value zu groß / vom falschen Typ für die Felder.
 
ComFreaks Antwort dürfte hinpassen.
Der Grund:
TO und FROM ist ein Befehl in MySQL und kann zu Problemen Führen. Wenn deine Spalte so heisst musst du den Spaltennamen in ` setzen.
Hier die passende Stelle in der deutshcn Dok zu MySQL :
http://dev.mysql.com/doc/refman/5.1-olh/de/reserved-words.html
Und hier eine Auflistung aller Reservierter Wörter:
http://dev.mysql.com/doc/mysqld-version-reference/en/mysqld-version-reference-reservedwords-5-1.html

Was die Zahlen angeht. Da hat Lime recht. Wenn die Felder in der DB als Zahl definiert sind, sollte mna sie ohne ' schreiben. Jedoch führt dies bei einem INSERT nicht zu einem Fehler
 
Zurück