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-ID: 26463

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

Ausgedruckt am: 15.11.2024 um 05:11 Uhr

Cayman
Cayman 20.02.2006 um 16:13:39 Uhr
Goto Top
P.S Die Datanbank und die Tabelle existieren und die Felder stimmen ebenfalls überein.
Dani
Dani 20.02.2006 um 16:15:08 Uhr
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);
Cayman
Cayman 20.02.2006 um 16:23:24 Uhr
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
Dani
Dani 20.02.2006 um 16:45:03 Uhr
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
Cayman
Cayman 20.02.2006 um 16:52:08 Uhr
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....
Dani
Dani 20.02.2006 um 16:56:24 Uhr
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.
Cayman
Cayman 20.02.2006 um 16:59:50 Uhr
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
Cayman
Cayman 20.02.2006 um 17:04:34 Uhr
Goto Top
Werde aus der FM nicht schlau abgesehen davon das bei den Values zwischen E-Mail und Handelsregisternummer kein Wert steht.
Dani
Dani 20.02.2006 um 17:07:55 Uhr
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');
Cayman
Cayman 20.02.2006 um 17:10:23 Uhr
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
Cayman
Cayman 20.02.2006 um 17:13:28 Uhr
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..... ?
Dani
Dani 20.02.2006 um 17:14:39 Uhr
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');
Cayman
Cayman 20.02.2006 um 17:21:34 Uhr
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
Dani
Dani 20.02.2006 um 17:25:55 Uhr
Goto Top
Kleine Denkanregung. Spaltennamen immer klein. Nie Sonderzeichen sondern nur buchstaben und zahlen.

Viel Spaß!!
Gruß
Dani
Biber
Biber 20.02.2006 um 17:28:01 Uhr
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
25768
25768 01.04.2006 um 15:42:05 Uhr
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