Probleme mit Insert bei PHP
-
Hallo,
in meidem Code muß irgendwo ein Fehler sein, ich bekomme durch meinen Code zwar jeweils einen neuen Eintrag in der MySQL-Datenbank, aber der Eintrag ist leer. Warum werden meine Werte nicht übergeben
?
<html> <head> <?php $db = mysql_connect('localhost', 'root', 'root'); mysql_select_db("rezepte"); $query = "INSERT INTO rezept_haupt (bezeichnung, rezept, kategorie, land) values ('$bz', '$re', '$kat', '$land')"; $result = mysql_query($query); mysql_close($db); ?> </head> <body> Geben Sie einen vollständigen Datensatz ein und senden Sie das Formular ab: <form action = "rezept3.php" method = "post"> <input name="bz"> Bezeichnung<p> <input name="re"> Rezept<p> <input name="kat"> Kategorie<p> <input name="land"> Land<p> <input type="submit" name="gesendet"> <input type="reset"> </form> Alle Datensätze <a href="rezept2.php">anzeigen</a> </body> </html>
Über ein paar Tips warum es nicht geht würde ich mich freuen.
Viele Grüße,
Arwen
-
Hallo Arwen,
hast du mal versucht in dem value-Teil deines SQL-Befehls die Hochkommas wegzulassen. Sind alle Felder deiner Tabelle Stringfelder? Wenn nein, könnten hier die Hochkommas ebenfalls stören. Obwohl ich nicht vestehe, das der Datensatz ohne Fehler erstellt wird. Wenn beim Einfügen etwas nicht klappt wird glaube ich auch kein Datensatz in die Datenbank geschrieben.
-
Versuchs auch mal mit:
$query = "INSERT INTO rezept_haupt (bezeichnung, rezept, kategorie, land) values ('$_POST[$bz]', '$_POST[$re]', '$_POST[$kat]', '$_POST[$land]')";
-
Schon fast richtig
$query = 'INSERT INTO rezept_haupt (bezeichnung, rezept, kategorie, land) values ("'.$_POST['bz'].'","'.$_POST['re'].'","'.$_POST['kat'].'","'.$_POST['land'].'")';
Ich hoffe mal, dass ich jetzt nicht wieder einen Fehler eingebaut habe
Bei neueren Versionen von PHP ist register_globals aus Sicherheitsgründen defaultmäßig auf false, deswegen kannst du nicht direkt mit $bz auf den übergebenen Wert zugreifen, sondern musst je nach Übertragungsart des Formulars das $_GET, $_POST oder $_REQUEST Array verwenden
-
Ein paar zeichen kürzer :p
$query = "INSERT INTO rezept_haupt (bezeichnung, rezept, kategorie, land) values ('{$_POST['bz']}','{$_POST['re']}','{$_POST['kat']}','{$_POST['land']}')";
-
Aber "" ist afaik minimal langsamer als '' :p
-
Hmmm stimmt
Das gesamte Token wir ja nach variablen durchsucht ...
1:0 für dich
-
Herrmann schrieb:
. Sind alle Felder deiner Tabelle Stringfelder? Wenn nein, könnten hier die Hochkommas ebenfalls stören.
Man kann jeden Wert in Hochkommas geben. Bei int-Werten nicht Pflicht aber macht nichts. Auch Datumswerte welche ja keine Stringfelder sind müssen in Hochkommas.