Mysql Syntax Error
tomikaze
- php
Hallo !
Ich weiß leider nicht mehr weiter.
Habe ein Formular erstellt. Die Daten werden per POST an ein php-skript übergeben. Diese soll nichts anderes machen als die Daten in eine Datenbank-Tabelle "kategorie" schreiben.
Hier nun der Code der kategorie_neu.php:
include('../inc/base.inc.php');
include('../inc/adfunctions.inc.php');
include('../inc/database.inc.php');
$index = $_POST['index'];
$kat = $_POST['kat'];
$connection = mysql_connect($db['host'], $db['uid'], $db['pwd']);
if ($connection)
{
mysql_select_db($db['db']);
$sql = "INSERT INTO kategorie (index,kat) VALUES ('$index', '$kat')";
echo $sql;
mysql_query($sql) or die(mysql_error());
}
Als Ausgabe bekomme ich
"
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 'index,kat)VALUES('2', 'Beilagen')' at line 1
"
Ich sehe beim besten willen keinen Syntax Fehler.
Gruß
Hello,
$index = $_POST['index'];
$kat = $_POST['kat'];
Statt hier stumpf und überflüssig Varíablen umzukopiern, solltest Du lieber an die Sixcherheit denken:
$connection = mysql_connect($db['host'], $db['uid'], $db['pwd']);
if ($connection)
{
mysql_select_db($db['db']);
## achte darauf, dass magic quotes gpc ausgeschaltet oder bereits wieder entfernt sind!
$index = mysql_real_escape_string($_POST['index'],$connection);
$kat = mysql_real_escape_string($_POST['kat'],$cennection);
$sql = "INSERT INTO kategorie (index
,kat
) VALUES ('$index', '$kat')";
"index" ist ein reserviertes Wort in MySQL (in eigentlich allen DBMS) und darf daher nicht als Spaltenname verwendet werden. MySQL kennt dafür die Backticks spaltenname
und das "Verbot" außer Kraft zu setzen.
Ein harzliches Glückauf
Tom vom Berg
http://bergpost.annerschbarrich.de
.
Danke, "index" das wars.