Seite 1 von 2
Formulardaten in MySQL Datenbank eintragen?
Verfasst: 25.08.2005 10:20
von nils754
Hi,
kann mir jemand kurz erklären wie ich Daten von einem Formular in meiner SQL Tabelle speichern kann.
Über Phpmyadmin funktioniert das ja so:
Code: Alles auswählen
INSERT INTO abc (id, Vorname, Name, Adresse, Ort) VALUES ('', 'Peter', 'Mustermann', 'Das ist geheim', 'Musterstadt')
Nur wie kann ich diese Daten, wenn ich sie von dem Formular bekomme, in die Datenbanktabelle eintragen. Oder mit welcher Funktion geht das?
Verfasst: 25.08.2005 10:36
von Suche Hilfe
Ersetze die Daten die du einfügen willst durch Variablen die du von dem Formular bekommst
Verfasst: 25.08.2005 10:58
von nils754
Meinst du das so?
Code: Alles auswählen
@mysql_connect("localhost","root","");
@mysql_select_db("page");
INSERT INTO mail_log (id, name, absender, datum, ip, nachricht)
VALUES ('', '$_POST[name]', '$_POST[email]', '$datum', '192.168.135.154', '$_POST[nachricht]')
mysql_close();
Verfasst: 25.08.2005 11:09
von Suche Hilfe
Ja so meinte ich es.
Klappt?
Verfasst: 25.08.2005 11:34
von nils754
Nein, es kommt eine solche Fehlermeldung:
Code: Alles auswählen
Parse error: syntax error, unexpected T_STRING in C:\apache\xampp\htdocs\test\includes\mail.php on line 37
Verfasst: 25.08.2005 11:47
von Suche Hilfe
Was steht in Line 37? Schick ma den Script von zeile 35 - 39
Verfasst: 25.08.2005 12:14
von mristau2k5
nils754 hat geschrieben:
Code: Alles auswählen
@mysql_connect("localhost","root","");
@mysql_select_db("page");
INSERT INTO mail_log (id, name, absender, datum, ip, nachricht)
VALUES ('', '$_POST[name]', '$_POST[email]', '$datum', '192.168.135.154', '$_POST[nachricht]')
mysql_close();
Also wenn das so genau in deinem Skript steht, gibts natürlich nen Fehler, das müsste z.B. so aussehen:
Code: Alles auswählen
@mysql_connect("localhost","root","");
@mysql_select_db("page");
$sql = "INSERT INTO mail_log (id, name, absender, datum, ip, nachricht)
VALUES ('', '".$_POST[name]."', '".$_POST[email]."', '".$datum."', '192.168.135.154', '".$_POST[nachricht]."')";
@mysql_query($sql, $verbindung);
mysql_close();
Das Problem liegt darin, dass das INSERT eine SQL-Anweisung ist, die von PHP nicht direkt ausgeführt wird, sondern mit dem Befehl mysql_query().
Die Fehlermeldung
nils754 hat geschrieben:
Code: Alles auswählen
Parse error: syntax error, unexpected T_STRING in C:\apache\xampp\htdocs\test\includes\mail.php on line 37
besagt nur, dass in Zeile 37 im PHP-Skript ein String gefunden wurde, nämlich in dem INSERT die mit ' eingeschlossenen Zeichen
Verfasst: 25.08.2005 12:36
von StarWolf3000
wenn ich helfen darf:
Code: Alles auswählen
@mysql_connect("localhost","root","");
@mysql_select_db("page");
INSERT INTO mail_log (id, name, absender, datum, ip, nachricht)
VALUES ('', '$_POST[name]', '$_POST[email]', '$datum', '192.168.135.154', '$_POST[nachricht]')
mysql_close();
ist nicht korrekt
es muss so heißen:
Code: Alles auswählen
@mysql_connect("localhost","root","");
@mysql_select_db("page");
INSERT INTO mail_log (id, name, absender, datum, ip, nachricht)
VALUES ("", "$_POST['name']", "$_POST['email]", '$datum', '192.168.135.154', "$_POST['nachricht']")
mysql_close();
das Problem sind die (bei dir nicht verwendeten) Anführungszeichen innerhalb der $_POST[]
Verfasst: 25.08.2005 13:21
von nils754
mristau2k5 hat geschrieben:
Code: Alles auswählen
@mysql_connect("localhost","root","");
@mysql_select_db("page");
$sql = "INSERT INTO mail_log (id, name, absender, datum, ip, nachricht)
VALUES ('', '".$_POST[name]."', '".$_POST[email]."', '".$datum."', '192.168.135.154', '".$_POST[nachricht]."')";
@mysql_query($sql, $verbindung);
mysql_close();
Danke für die Hilfe!
Jetzt habe ich aber noch ein Problem. Es wird nichts in die DB eingetragen.
Für was steht denn die Variable $verbindung?
edit:
Das ist die Fehlermeldung:
Code: Alles auswählen
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\apache\xampp\htdocs\test\includes\mail.php on line 40
Verfasst: 25.08.2005 13:31
von StarWolf3000