Kein Daten werden in Datenbank gespeichert

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

Kein Daten werden in Datenbank gespeichert

Postby Peppino » 25. March 2010 17:44

Hallo zusammen!

Wollte mir gerade mal ein kleines Script basteln als Anfänger, aber habe irgendwie ein Prob.
Und zwar habe ich folgende paar zeilen.
Code: Select all
$db_dbname = "test-datenbank";
 $db_user = "root";
 $db_pw = "pass1";
 $db_host = "127.0.0.1";
 
 $tabellenname = "test2";
   
 mysql_connect($db_host, $db_user, $db_pw) or die ('Keine Verbindung' . mysql_error());
 mysql_select_db($db_dbname) ;
 
 $datum =(date ("d.m.Y"));
 
 mysql_query("INSERT INTO ".$tabellenname." (tageszeit,ort,frei,next_frei,anfang,datum) VALUES (".$_POST['tageszeit'].",".$_POST['ort'].",".$_POST['frei'].",".$_POST['next_frei'].",".$_POST['anfang'].",".$datum.")");
 


Wenn ich mir echo jetzt die einzelnen Strings abfrage, bekomme ich auch die daten des Formulars, aber irgendwie wird nichts in der DB geschrieben.
Bekomme auch keine Fehlermeldung'!

Wäre über hilfe dankbar.

Gruß Marcus
Peppino
 
Posts: 3
Joined: 25. March 2010 17:38

Re: Kein Daten werden in Datenbank gespeichert

Postby Altrea » 25. March 2010 17:51

Peppino wrote:Bekomme auch keine Fehlermeldung'!


Wo ist deine Fehlerbehandlung, falls deine query fehlschlägt?
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Kein Daten werden in Datenbank gespeichert

Postby Peppino » 25. March 2010 18:11

Peppino wrote:Hallo zusammen!

Wollte mir gerade mal ein kleines Script basteln als Anfänger, aber habe irgendwie ein Prob.
Und zwar habe ich folgende paar zeilen.
Code: Select all
$db_dbname = "test-datenbank";
 $db_user = "root";
 $db_pw = "pass1";
 $db_host = "127.0.0.1";
 
 $tabellenname = "test2";
   
 mysql_connect($db_host, $db_user, $db_pw) or die ('Keine Verbindung' . mysql_error());
 mysql_select_db($db_dbname) ;
 
 $datum =(date ("d.m.Y"));
 
 mysql_query("INSERT INTO ".$tabellenname." (tageszeit,ort,frei,next_frei,anfang,datum) VALUES (".$_POST['tageszeit'].",".$_POST['ort'].",".$_POST['frei'].",".$_POST['next_frei'].",".$_POST['anfang'].",".$datum.")");
echo mysql_errno() . ": " . mysql_error(). "\n";



Wenn ich mir echo jetzt die einzelnen Strings abfrage, bekomme ich auch die daten des Formulars, aber irgendwie wird nichts in der DB geschrieben.
Bekomme auch keine Fehlermeldung'!

Wäre über hilfe dankbar.

Gruß Marcus


Hab ne Fehlerbehandlung reingebracht.
Sorry bin wirklich anfänger.

als Fehler bekomme ich jetzt
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 '.2010,Morgens,Berlin,Ja,Ja,10)' at line 1

Gruß Marcus
Peppino
 
Posts: 3
Joined: 25. March 2010 17:38

Re: Kein Daten werden in Datenbank gespeichert

Postby Peppino » 25. March 2010 18:52

Ich nochmal!

Also das Problem war irgendwie das datum. Habs erstmal rausgenommen.

Nun bekomme ich aber ne andere Fehlermeldung

1054: Unknown column 'Morgens' in 'field list'

Klar das er das Feld "Morgens" nicht findet, weil Morgens ist der wert, der in das Feld 'tageszeit' rein soll.

Der Wert "Morgens" wird wird mit der variable $_POST['tageszeit'] aus dem Formular übergeben.

Jemand ne idee?

Gruß Marcus
Peppino
 
Posts: 3
Joined: 25. March 2010 17:38

Re: Kein Daten werden in Datenbank gespeichert

Postby Nobbie » 25. March 2010 21:02

Peppino wrote:Jemand ne idee?


Oh, jede Menge.


DIe erste Idee: Du bist viel zu hektisch und kannst nicht in Ruhe nach Fehlern suchen. Um das zu üben und zu lernen, tust Du folgendes:

anstatt direkt einen String an mysql_query() zu überreichen, baust Du nun vorher diesen String zusammen (nach gleicher Rezeptur) und übergibst den an eine Variable, nennen wir sie $select. Und wenn der mysql_select() schief geht (wie in diesem Fall), gibst Du nicht nur mysql_error() aus, sondern auch den Wert von $select. Wetten, dass in allerkürzester Zeit selbst siehst, wo der Hund begraben liegt?

Nur dieses hektische Herumgehampel "jetzt tuts dies nicht und nun das nicht, und hier die schreckliche Meldung...." - das bringt gar nichts. In der Ruhe liegt die Kraft.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Kein Daten werden in Datenbank gespeichert

Postby Altrea » 25. March 2010 21:03

Peppino wrote:Also das Problem war irgendwie das datum.

Wenn das Datum in ein DATE(TIME) Datenbankfeld geschrieben werden soll, erwartet die Datenbank ein anderes format als d.m.Y.

Peppino wrote:1054: Unknown column 'Morgens' in 'field list'

Klar das er das Feld "Morgens" nicht findet, weil Morgens ist der wert, der in das Feld 'tageszeit' rein soll.

Der Wert "Morgens" wird wird mit der variable $_POST['tageszeit'] aus dem Formular übergeben.

Jemand ne idee?

Das Debuggen deiner SQL-Query ist aus der Ferne ist deutlich schwerer als wenn man alle Möglichkeiten der Ausgabe selbst implementieren kann.
Warum generierst du nicht erstmal deine SQL-Abfrage in einer Variable und übergibst sie danach erst an die mysql_query Funktion?
So könntest du zumindest die Variable ausgeben, mit den übergebenen Werten ein wenig experimentieren, bis die Query stimmt.

P.S.: Nobbie war mal wieder schneller :D
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 13 guests