andyah

MySQL - Tabelle speichert keine Daten

Hi NG,

ich kann bei einer MySQL-Tabelle keine Datensätze hinzufügen, obwohl ein Primärschlüssel und ein Timestamp-Feld definiert sind. Das Primärschlüssel-Feld ist auf AutoIncrement gestellt.

Woran liegt das und wie kann ich den Fehler beheben.

Gruß
Andy
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 203482

Url: https://administrator.de/forum/mysql-tabelle-speichert-keine-daten-203482.html

Ausgedruckt am: 25.04.2025 um 07:04 Uhr

catachan
catachan 18.03.2013 um 09:42:21 Uhr
Goto Top
Hi

wie sieht die Fehlermeldung aus ? Hat das Userkonto auch INSERT Berechtigung ?

LG
d4shoerncheN
d4shoerncheN 18.03.2013 um 09:42:43 Uhr
Goto Top
Hallo,

Woran liegt das und wie kann ich den Fehler beheben.
Das könnten wir dir eventuell sagen, wenn du uns den Fehler auch mitteilst. Gibt es irgendwelche Fehlermeldungen, wenn ja, welche!?

Gruß
@d4shoerncheN
AndyAh
AndyAh 18.03.2013 um 09:48:12 Uhr
Goto Top
Hi,

der User ist root. Eine Fehlermeldung gibt es nicht.

Gruß
Andy
catachan
catachan 18.03.2013 um 09:49:53 Uhr
Goto Top
Hi

Eine Fehlermeldung gibt es nicht.

Dubios ! Wie greifst du auf die Datenbank zu ? PHP ?

LG
AndyAh
AndyAh 18.03.2013 um 09:51:39 Uhr
Goto Top
Hi,

über PHP und ODBC.

Gruß
Andy
d4shoerncheN
d4shoerncheN 18.03.2013 um 09:52:26 Uhr
Goto Top
Hallo,

liest er denn die bestehenden Datensätze oder funktioniert auch dies nicht?

Gruß
@d4shoerncheN
catachan
catachan 18.03.2013 um 09:53:20 Uhr
Goto Top
Hi

Poste mal bitte den Code ! Bitte die CodeTags nicht vergessen.
ODBC oder die internen PHP-Mysql Funktionen wie mysql_connect() ?

LG
AndyAh
AndyAh 18.03.2013 um 09:59:23 Uhr
Goto Top
Hi,

in dieser Tabelle gibt es noch keine Datensätze.

Gruß
Andy
AndyAh
AndyAh 18.03.2013 aktualisiert um 15:46:25 Uhr
Goto Top
Hi,

hier der Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
$anrede = $_POST["anrede"];  
$vorname = $_POST["vorname"];  
$nachname = $_POST["nachname"];  
$strasse = $_POST["strasse"];  
$ort = $_POST["ort"];  
$plz = $_POST["plz"];  

$email = $_POST["email"];  
$kommentar = $_POST["kommentar"];  

$daten = "adressen";  
$db = mysql_connect ("localhost", "root", "");  
$select_db = mysql_select_db($daten); 



$sql_befehl = "INSERT INTO mitgieder(                
                    Anrede,
					Vorname,
					Nachname,
					strasse,
					plz,
					ort,
					EMail,
					Kommentar)
					
					values(
					
					'$anrede',  
					'$vorname',  
					'$nachname',  
					'$strasse',  
					'$plz',  
					'$ort',  
					'$email',  
					'$kommentar')";  
					
$result = mysql_query($sql_befehl);

if ($result)
{
   echo "gespeichert";  
}
else
{
   echo "nicht gespeichert";  
}

mysql_close($db);


			
?>
Ferner habe ich im Code das Problem, dass das Feld ORT, obwohl es im Formular existiert und auch richtig geschrieben ist, nicht ausgelesen wird.

Gruß
Andy
d4shoerncheN
d4shoerncheN 18.03.2013 aktualisiert um 10:05:45 Uhr
Goto Top
Hallo Andy,

bitte setz deinen Code zwischen folgende Befehle
< code>
DEIN CODE
< /code>

Leerzeichen nach den < bitte noch entfernen.

Gruß
@d4shoerncheN
catachan
catachan 18.03.2013 um 10:05:25 Uhr
Goto Top
Hi

bitte in Code Tags packen.
Heißt deine Tabelle wirklich mitgieder ?

Außerdem würde ich zum Aufbauen der Verbindung folgenden Code verwenden:

1
2
3
4
5
6
7
8
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');  
if (!$link) {
    die('Verbindung schlug fehl: ' . mysql_error());  
}
echo 'Erfolgreich verbunden';  
mysql_close($link);
?>

Ich glaube bei dir hackts schon beim Aufbau der Verbindung

LG
AndyAh
AndyAh 18.03.2013 aktualisiert um 10:16:57 Uhr
Goto Top
Hi,

mit dem 'die' scheint es nicht zu funktionieren. Ich bekomme die Fehlermeldung:

Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\PHP\datenbank.php on line 57

Gruß
Andy
catachan
catachan 18.03.2013 um 10:22:19 Uhr
Goto Top
Hi

wie sieht denn deine Zeile 57 aus ? Soll ich raten ?
Wahrscheinlich hast du ?> oder einen ; zu viel.

LG
d4shoerncheN
d4shoerncheN 18.03.2013 um 10:25:10 Uhr
Goto Top
Zitat von @catachan:
Hi

wie sieht denn deine Zeile 57 aus ? Soll ich raten ?
Wahrscheinlich hast du ?> oder einen ; zu viel.

LG
Hallo catachan,

soll ich dir meine Glaskugel leihen?

Gruß
@d4shoerncheN
AndyAh
AndyAh 18.03.2013 um 10:27:47 Uhr
Goto Top
Hi,

ja, es heißt ?>. Ein ; ist nicht zuviel.

Gruß
Andy
catachan
catachan 18.03.2013 um 10:29:01 Uhr
Goto Top
Hi

das ?> gehört ganz am Schluss. Beschäftige dich bitte mal mit den PHP Grundlagen

LG
AndyAh
AndyAh 18.03.2013 aktualisiert um 10:31:01 Uhr
Goto Top
Hi,

genau da steht es. Dahinter gibt es auch keine Leerzeile mehr.

Gruß
Andy
catachan
catachan 18.03.2013 um 10:32:06 Uhr
Goto Top
Hi

dann poste doch endlich mal den Code. Ich kann doch nicht hellsehen !!!!! Wenn du Hilfe haben möchtest, dann gib uns die notwendigen Infos

LG
d4shoerncheN
d4shoerncheN 18.03.2013 um 10:32:06 Uhr
Goto Top
Hallo AndyAh,

poste deinen gesamten Code hier doch noch einmal bitte und diesmal in den -Tags vom Forum, damit dein Code leicht zu lesen und zu deuten ist.

Gruß
@d4shoerncheN
AndyAh
AndyAh 18.03.2013 aktualisiert um 15:47:08 Uhr
Goto Top
Hi,

hier nocheimal der gesamte Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
$anrede = $_POST["anrede"];  
$vorname = $_POST["vorname"];  
$nachname = $_POST["nachname"];  
$strasse = $_POST["strasse"];  

$plz = $_POST["plz"];  

$email = $_POST["email"];  
$kommentar = $_POST["kommentar"];  

$daten = "adressen";  
$db = mysql_connect ("localhost", "root", "");  
if (!$db) { 
    die('Verbindung schlug fehl: ' . mysql_error());   
	 
$select_db = mysql_select_db($daten); 



$sql_befehl = "INSERT INTO mitgieder(                
                    Anrede,
					Vorname,
					Nachname,
					strasse,
					plz,
					
					EMail,
					Kommentar)
					
					values(
					
					'$anrede',  
					'$vorname',  
					'$nachname',  
					'$strasse',  
					'$plz',  
					
					'$email',  
					'$kommentar')";  
					
$result = mysql_query($sql_befehl);

if ($result)
{
   echo "gespeichert";  
}
else
{
   echo "nicht gespeichert";  
}

mysql_close($db);
			
?>
Gruß
Andy
d4shoerncheN
d4shoerncheN 18.03.2013 aktualisiert um 10:38:36 Uhr
Goto Top
Dann übernehme ich das nun...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
$anrede = $_POST["anrede"];  
$vorname = $_POST["vorname"];  
$nachname = $_POST["nachname"];  
$strasse = $_POST["strasse"];  

$plz = $_POST["plz"];  

$email = $_POST["email"];  
$kommentar = $_POST["kommentar"];  

$daten = "adressen";  
$db = mysql_connect ("localhost", "root", "");  
if (!$db) {
die('Verbindung schlug fehl: ' . mysql_error());  

$select_db = mysql_select_db($daten);



$sql_befehl = "INSERT INTO mitgieder(  
Anrede,
Vorname,
Nachname,
strasse,
plz,

EMail,
Kommentar)

values(

'$anrede',  
'$vorname',  
'$nachname',  
'$strasse',  
'$plz',  

'$email',  
'$kommentar')";  

$result = mysql_query($sql_befehl);

if ($result)
{
echo "gespeichert";  
}
else
{
echo "nicht gespeichert";  
}

mysql_close($db);

?>

Wie bereits angesprochen, heißt deine SQL-Tabelle wie in Zeile 21 angegeben:
$sql_befehl = "INSERT INTO mitgieder(
oder ehr mitglieder!?

Gruß
AndyAh
AndyAh 18.03.2013 aktualisiert um 10:46:26 Uhr
Goto Top
Hi,

es heißt zwar mitglieder aber mein Problem mit der Fehlermeldung behebt das nicht.
Wenn ich die Zeile:

if (!$db) {
die('Verbindung schlug fehl: ' . mysql_error());

auskommentiere, funktioniert es. Aber mein Hauptproblem mit der Nichtspeicherung von Daten ist allerdings auch noch nicht gelöst.

Gruß
Andy
d4shoerncheN
d4shoerncheN 18.03.2013 um 10:42:48 Uhr
Goto Top
Moin,

frage mich nur wie du die Fehlermeldung:
Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\PHP\datenbank.php on line 57

bekommen kannst, wenn in deinem nun kompletten Code gar keine Zeile 57 existiert. Merkwürdig...

Gruß
catachan
catachan 18.03.2013 aktualisiert um 10:43:31 Uhr
Goto Top
Hi

bei Zeile 15 Fehlt die geschwungene Klammer zu

1
2
if (!$db) { 
die('Verbindung schlug fehl: ' . mysql_error());}   
catachan
catachan 18.03.2013 um 10:44:12 Uhr
Goto Top
Hi

er hat vor dem Posting hier ein paar Zeilen entfernt. Z.B die mir Ort :_)

LG
AndyAh
AndyAh 18.03.2013 um 10:52:16 Uhr
Goto Top
Hi,

der Fehler mit der letzten Zeile ist behoben. Die Verbindung klappt.

Gruß
Andy
AndyAh
AndyAh 18.03.2013 aktualisiert um 10:58:00 Uhr
Goto Top
Hi,

die Zeilen habe ich gelöscht, da PHP den Index 'ort', obwohl im aufrufenden Formular existent, nicht findet.

Gruß
Andy
AndyAh
AndyAh 18.03.2013 aktualisiert um 11:24:47 Uhr
Goto Top
Hi,

das Problem mit dem Textfeld ist glöst. Fehlt nur noch die Speicherung.

Ich habe eben herausgefunden, das die Speicherung per ODBC doch funktioniert. Nur PHP speichert nicht.

Gruß
Andy
SlainteMhath
SlainteMhath 18.03.2013 aktualisiert um 11:42:33 Uhr
Goto Top
Moin,

du warst doch letzte Woche schonmal mit dem gleichen Problem hier, oder?

Ersetze mal bitte
1
$result = mysql_query($sql_befehl); 
durch
1
echo "<br>" . $sql_befehl ."<br>";  
Und poste dann das Query hier innerhalb code-tags(!!!) bzw füge das ganze mal in myPHPAdmin als ein und schau ob dann in die Table geschrieben wird. Ansonten: Poste die Fehlermeldung hier (innerhlab code tags)

/EDIT: Und poste doch bitte mal innerhalb code-tags(!!!) die Definition der Tabelle.

lg,
Slainte
AndyAh
AndyAh 18.03.2013 um 11:46:23 Uhr
Goto Top
Hi,

jetzt geht es. Ich habe aus dem INSERT einfach die Datenfeldnamen herausgenommen.

Gruß
Andy
110135
110135 18.03.2013 um 11:47:45 Uhr
Goto Top
Hallo,

wie ich sehen solltest du noch einiges in PHP lernen. Aber egal. Jeder fängt einmal an.

1
$select_db = mysql_select_db($daten); 
Zwecks Fehlerprüfung - du musst das gleiche machen wie mit der Verbindung:

1
2
3
if (!$select_db) { 
die('Verbindung schlug fehl: ' . mysql_error());   
}

Du solltest dir angewöhnen die Spalten entweder alle klein oder alle Groß zu schreiben - so verwirrst du dich nur selbst und schaffst Fehlerquellen. Außerdem solltest du dir einmal PDO anschauen zwecks Sicherheit und MySQL Injections!

Du könntest auch zum Debugging folgendes schreiben:
1
2
3
4
5
6
7
8
9
if ($result)
{
echo "gespeichert";  
}
else
{
echo "nicht gespeichert";  
echo mysql_error();
}

Damit wird die ein Fehler ausgegeben, mit dem es sich leichter arbeiten lässt!


Welchen Fehler erhälst du?
Gruß
Florian.
SlainteMhath
SlainteMhath 18.03.2013 um 11:48:08 Uhr
Goto Top
Zitat von @AndyAh:
Hi,

jetzt geht es. Ich habe aus dem INSERT einfach die Datenfeldnamen herausgenommen.

Gruß
Andy

/facepalm
110135
110135 18.03.2013 um 11:51:51 Uhr
Goto Top
Zitat von @AndyAh:
Hi,

jetzt geht es. Ich habe aus dem INSERT einfach die Datenfeldnamen herausgenommen.

Gruß
Andy

Dann hast du doch schon deinen Fehler!!
Hast du die Feldnamen in der Datenbank genauso geschrieben, wie im Script (Groß-/ Kleinschreibung). Du solltest dir angewöhnen, die SQL-Befehler so aussehen zu lassen:

1
$sql_befehl = "INSERT INTO `mitglieder`(`Anrede`,`Vorname`,`Nachname`) VALUES ('".$anrede."','".$vorname."','".$nachname."');  

und bitte jede Variable $vorname, etc mit mysql_real_escape_string sichern!
SlainteMhath
SlainteMhath 18.03.2013 um 11:55:42 Uhr
Goto Top
Zitat von @110135:
und bitte jede Variable $vorname, etc mit mysql_real_escape_string sichern!

Den Hinweis hat der TE schon beim letzten Thread dieser Art ignoriert :/
dog
dog 18.03.2013 um 12:56:17 Uhr
Goto Top
/facepalm

Dafür gibts doch ein Smiley: m(