cayman
Goto Top

Neuer Datenbankeintrag wird nicht in die MYSQL DB übernommen.

Ich mal wieder,,,,

weiß Jemand warum die Werte des folgenden PHP Codes nicht in die DB übernommen werden?

Ich habe ein HTML Eingabeformular bebastelt das alle unten genannten Werte abfragt.

Mein PHP Code wie unten abgebildet holt sich alles via POST und sollte eigentlich wie unten zu sehen die Werte in die Tabelle 'kunden' eintragen.

Was ich bekomme nachdem ich einen neuen Kunden anlegen will ist zwar die ECHO Anweisung mit dem OK aber der Kunde ist definitiv nicht in der DB wenn ich mir diese anschaue via PHPMYADMIN.

Any ideas?


Besten Dank
Marc

Anbei meine SQL Tabelle:


<?php

$firmenname = $_POST["firmenname"];
$geschaeftsfuehrer = $_POST["geschaeftsfuehrer"];
$strasse = $_POST["strasse"];
$plz = $_POST["plz"];
$ort = $_POST["ort"];
$land = $_POST["land"];
$telefon = $_POST["telefon"];
$handy = $_POST["handy"];
$fax = $_POST["fax"];
$email = $_POST["email"];
$handelsregister = $_POST["handeslregister"];
$steuernummer = $_POST["steuernummer"];
$website = $_POST["website"];
$kundennummer = $_POST["kundennummer"];

$db = mysql_connect("localhost","root","test123");
mysql_select_db("mycompany");

$neu ="INSERT INTO kunden VALUES

('$firmenname','$geschaeftsfuehrer','$strasse','$plz','$ort','$land','$telefon','$handy','$fax','$email','$handelsregister','$steuernummer','$website','$kundennummer)";

mysql_query($neu);

mysql_close($db);

echo "Der Kunde wurde erfolgreich angelegt."

?>

Content-Key: 26463

Url: https://administrator.de/contentid/26463

Printed on: April 19, 2024 at 03:04 o'clock

Member: Cayman
Cayman Feb 20, 2006 at 15:13:39 (UTC)
Goto Top
P.S Die Datanbank und die Tabelle existieren und die Felder stimmen ebenfalls überein.
Member: Dani
Dani Feb 20, 2006 at 15:15:08 (UTC)
Goto Top
Hi,
du musst noch die Spaltenname angeben!!!


Beispiel von mir:
$sql="INSERT INTO home_news (id, titel, text, link, date) VALUES ('', '$ueber','$text' ,'$link', NOW())";
mysql_query($sql);
Member: Cayman
Cayman Feb 20, 2006 at 15:23:24 (UTC)
Goto Top
Hallo!

Habe ich eben getestet aber weiterhin kein neuer Kunde in meiner DB.

Code wie folgt:

<?php

$firmenname = $_POST["firmenname"];
$geschaeftsfuehrer = $_POST["geschaeftsfuehrer"];
$strasse = $_POST["strasse"];
$plz = $_POST["plz"];
$ort = $_POST["ort"];
$land = $_POST["land"];
$telefon = $_POST["telefon"];
$handy = $_POST["handy"];
$fax = $_POST["fax"];
$email = $_POST["email"];
$handelsregister = $_POST["handeslregister"];
$steuernummer = $_POST["steuernummer"];
$website = $_POST["website"];
$kundennummer = $_POST["kundennummer"];

$db = mysql_connect("localhost","root","test123");
mysql_select_db("mycompany");

$neu ="INSERT INTO kunden
(Firmenname, Geschaeftsfuehrer, Strasse, PLZ, Ort, Land, Telefon, Handy, Fax, E-Mail, Handelsregisternummer, Steuernummer, Website, Kundennummer)
VALUES
('$firmenname','$geschaeftsfuehrer','$strasse','$plz','$ort','$land','$telefon','$handy','$fax','$email','$handelsregister','$steuernummer','$website','$kundennummer)";

mysql_query($neu);

mysql_close($db);

echo "Der Kunde wurde erfolgreich angelegt."

?>

Noch andere Ideen?

Besten Dank
Member: Dani
Dani Feb 20, 2006 at 15:45:03 (UTC)
Goto Top
Mach einfach mal noch echo $sql. Kopier den Code in phpMyAdmin und führ dann mal aus. Falls dann ein Fehler kommt, bitte posten.

Gruß
Dani
Member: Cayman
Cayman Feb 20, 2006 at 15:52:08 (UTC)
Goto Top
Sorry bin noch kein Prof.

Meinst Du einfach nach meiner letzten ECHO Anweisung (echo "Der Kunde....") noch

echo $sql

eingeben oder?

Und wie gebe ich den Code in PHPMYADMIN ein? Sofern ich den einfach reinkopiere bekomme ich doch mit Sicherheit eine FM da die Variablen noch nicht vorhanden sind....
Member: Dani
Dani Feb 20, 2006 at 15:56:24 (UTC)
Goto Top
Genau, einfach nachdem letzten echo - Ausgabe. Dann den ausgegebenen Befehl kopieren. phpMyadmin auf machen und in die Tabelle kunden gehen. Dann gibst oben sowas wie SQL. Dort den Code einfügen und auf OK klicken. Nun müsste korrekterweiße der Datensatz eingefügt werden.
Member: Cayman
Cayman Feb 20, 2006 at 15:59:50 (UTC)
Goto Top
Erledigt.

Ich bekomme folgende FM über PHPMYADMIN:


Es scheint einen Fehler in Ihrer MySQL-Abfrage zu geben. Die MySQL-Fehlerausgabe, falls vorhanden, kann Ihnen auch bei der Fehleranalyse helfen.

ERROR: Nicht geschlossene Anführungszeichen @ 308
STR: '
SQL: INSERT INTO kunden (Firmenname, Geschaeftsfuehrer, Strasse, PLZ, Ort, Land, Telefon, Handy, Fax, E-Mail, Handelsregisternummer, Steuernummer, Website, Kundennummer) VALUES ('BCS','Michael Bernhardt','AltHausen 34','63345','Frankfurt','Deutschland','0614435','663449783','54353','bfv@gmx.com','','545','5245','543)

SQL-Befehl:

INSERT INTO kunden (Firmenname, Geschaeftsfuehrer, Strasse, PLZ, Ort, Land, Telefon, Handy, Fax, E-Mail, Handelsregisternummer, Steuernummer, Website, Kundennummer) VALUES ('BCS','Michael Bernhardt','AltHausen 34','63345','Frankfurt','Deutschland','0614435','663449783','54353','bfv@gmx.com','','545','5245','543)
MySQL meldet:

#1064 - 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 '-Mail, Handelsregisternummer, Steuernummer, Website, Kundennummer) VALUES ('BCS'' at line 1
Member: Cayman
Cayman Feb 20, 2006 at 16:04:34 (UTC)
Goto Top
Werde aus der FM nicht schlau abgesehen davon das bei den Values zwischen E-Mail und Handelsregisternummer kein Wert steht.
Member: Dani
Dani Feb 20, 2006 at 16:07:55 (UTC)
Goto Top
Probier mal das hier:


INSERT INTO kunden (Firmenname, Geschaeftsfuehrer, Strasse, PLZ, Ort, Land, Telefon, Handy, Fax, E-Mail, Handelsregisternummer, Steuernummer, Website, Kundennummer) VALUES ('BCS','Michael Bernhardt','AltHausen 34','63345','Frankfurt','Deutschland','0614435','663449783','54353','bfv@gmx.com','','545','5245','543');
Member: Cayman
Cayman Feb 20, 2006 at 16:10:23 (UTC)
Goto Top
Leider kein Glück gehabt.

MySQL meldet:

SQL-Befehl:

INSERT INTO kunden( Firmenname, Geschaeftsfuehrer, Strasse, PLZ, Ort, Land, Telefon, Handy, Fax, E - Mail, Handelsregisternummer, Steuernummer, Website, Kundennummer )
VALUES (

'BCS', 'Michael Bernhardt', 'AltHausen 34', '63345', 'Frankfurt', 'Deutschland', '0614435', '663449783', '54353', 'bfv@gmx.com', '', '545', '5245', '543'
)
MySQL meldet:

#1064 - 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 '-Mail, Handelsregisternummer, Steuernummer, Website, Kundennummer) VALUES ('BCS'' at line 1
Member: Cayman
Cayman Feb 20, 2006 at 16:13:28 (UTC)
Goto Top
Was ich nicht verstehe, was vielleicht auch das Problem ist...

Folgende doppelte Anführungszeichen sollen doch bedeuten das nichts eingegeben wurde korrekt?

'bfv@gmx.com', '', '545'

Zwischen der E-Mail Adresse und der 545.

Witzig ist nur das ich alle Felder ausgefüllt habe und ich sehe beim Eingabeformular das das Feld E-Mail eine andere Farbe hat als der Rest..... ?
Member: Dani
Dani Feb 20, 2006 at 16:14:39 (UTC)
Goto Top
Du musst aus dem Feld "E - Mail" -> email machen!!!

INSERT INTO kunden(Firmenname, Geschaeftsfuehrer, Strasse, PLZ, Ort, Land, Telefon, Handy, Fax, email, Handelsregisternummer, Steuernummer, Website, Kundennummer)
VALUES ('BCS', 'Michael Bernhardt', 'AltHausen 34', '63345', 'Frankfurt', 'Deutschland', '0614435', '663449783', '54353', 'bfv@gmx.com', NULL, '545', '5245', '543');
Member: Cayman
Cayman Feb 20, 2006 at 16:21:34 (UTC)
Goto Top
ALLES KLAR!

Das war das Problem. Offensichtlich kommt mySQL nicht mit Feldbezeichnungen inclusive Minuszeichen klar. Nachdem ich das Feld umbenannte in EMail und den Code anpasste klappt es jetzt.

Besten Dank Dani für Deine Zeit!!

Gruss
Marc
Member: Dani
Dani Feb 20, 2006 at 16:25:55 (UTC)
Goto Top
Kleine Denkanregung. Spaltennamen immer klein. Nie Sonderzeichen sondern nur buchstaben und zahlen.

Viel Spaß!!
Gruß
Dani
Member: Biber
Biber Feb 20, 2006 at 16:28:01 (UTC)
Goto Top
..Ergänzung zu Dani:
$handelsregister = $_POST["handeslregister"]; --->sieht nach Tippfehler aus

und in der INSERT INTO-Anweisung heißt es falsch handelsregisternummer.

Und Feld "E - Mail" und auch "E-Mail" sind sicherlich falsch - Alle Werte in der ersten Klammer müssen vom Namen her mit den tatsächlichen Feldnamen identisch sein und in Reihenfolgen und Anzahl mit denen der VALUES-Klammer korrespondieren.

Gruß Biber
Mitglied: 25768
25768 Apr 01, 2006 at 13:42:05 (UTC)
Goto Top
Hallo,

auch wenn ich selbst kleingeschriebene zusammenhängende Colums benutze, möchte ich der Vollständigkeit halber noch hinzufügen, dass das Feld
E - Mail
kein Problem ist, insofern man es als String schreibt :

'E - Mail'
`E - Mail`
"E - Mail" (aufpassen auf ANSI_QUOTES)

http://dev.mysql.com/doc/refman/5.0/en/legal-names.html

GruÃ?
Andi