mySQL/PHP: Datum in Tabelle eintragen - geht nicht

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Wuppi
Mitglied
Beiträge: 734
Registriert: 14.05.2002 23:04
Wohnort: Köln
Kontaktdaten:

mySQL/PHP: Datum in Tabelle eintragen - geht nicht

Beitrag von Wuppi »

Hi

ich werde noch wahnsinnig ...

hab nen kleines Script welches mir die Serveruptime in die DB schreibt:

Die Tabelle "uptime" besteht aus uprekord, id und datum

Code: Alles auswählen

$aendern = "UPDATE uptime SET uprekord = $uptime WHERE id = '2'";
$update = mysql_query($aendern);
=> Hier trage ich die aktuelle Uptime in die Tabelle ein => klappt problemlos. Format: BigInt(10) / Unix-Timestamp

Jetzt möchte ich für ID = 2 (aktuelle Uptime) noch das Datum übermitteln:

Code: Alles auswählen

$recdate = date("Y-m-d H:m:s"); 
$aendern = "UPDATE uptime SET datum = $recdate WHERE id = '2'"; 
$update = mysql_query($aendern);
=> $recdate hat z.b. folgenden Inhalt: "2005-08-08 23:08:53" (per echo $recdate; geprüft) - in der Datenbank hab ich das Format DATETIME für dieses Feld => geht nicht!

Ok also hab ich das Format in der DB mal auf TEXT geändert - auch hier keine übertragung in die DB!

Geh ich etwas direkter an die sache ran:

Code: Alles auswählen

$aendern = "UPDATE uptime SET datum = '2005-08-08 23:08:53' WHERE id = '2'"; 
=> geht das auch nicht :( (egal ob TEXT oder DATETIME)

Aus verzweifelung mal

Code: Alles auswählen

$aendern = "UPDATE uptime SET datum = 'recdate' WHERE id = '2'"; 
getestet - also in Datum (TEXT) soll nur recdate eingetragen werden => das klappt. => Der Aufruf ist also Grundsätzlich richtig (klappt ja auch mit der Übermittlung der Uptime.

Das Teil hat so mal funktioniert - da war noch PHP4 aufm Server - jetzt hab ich PHP5.0.4, ApacheWin32 2.0.54 drauf - vermute mal das sich in php5 diesbzgl. etwas geändert hat??? was?? warum macht man sowas?? *verzweifeltAnKopfFass*

Gruß
Wuppi
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

KB:knigge
Benutzeravatar
Wuppi
Mitglied
Beiträge: 734
Registriert: 14.05.2002 23:04
Wohnort: Köln
Kontaktdaten:

Beitrag von Wuppi »

Hi

gelesen - aber weiter komm ich da net ...

hab den Code optisch etwas angepasst:

Code: Alles auswählen

$aendern = "UPDATE `uptime` SET `datum` = $recdate WHERE `id` = 2"; 
Also mit diesen Hochkommas - hab ich zwar noch nie gemacht, lief auch immer so, aber nen Versuch wars mal wert. Dann hab ich unter

Code: Alles auswählen

$update = mysql_query($aendern);
folgenden Aufruf reingesetzt:

Code: Alles auswählen

echo mysql_errno() . ": " . mysql_error(). "\n";
Bekomme auch nen Fehler - aber schlau werde ich daraus nicht:
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 '01:08:15 WHERE `id` = 2' at line 1
Scheinbar gibt es ein Problem mit dem Leerschritt in der Variable (soll-Eintrag: 2005-08-09 01:08:15)

Aber wenn ich bei nem TEXT-Format keine Leerzeichen eintragen darf, find ich das nen bissel "kurios" ... und DATETIME erfordet ja auch 2005-08-09 01:08:15 als übergabe ... Wenn ich etwas in de DB schreibe, ohne Leerschritt, wird das übernommen ...

Aktuell ist halt das Format für "DATUM" auf TEXT eingestellt.

Über phpmyadmin kann ich leerschritte einfügen - der Code der dabei rausgewurfen wird, läuft dann aber wieder nicht im Script :(

Gruß
Wuppi
Benutzeravatar
Wuppi
Mitglied
Beiträge: 734
Registriert: 14.05.2002 23:04
Wohnort: Köln
Kontaktdaten:

Beitrag von Wuppi »

Hi

fehler gefunden ...

Code: Alles auswählen

$aendern = "UPDATE `uptime` SET `datum` = '". $recdate ."' WHERE `id` = '1'";  
=> ' ". $recdate ." '

hat man mir ziemlich unfreundlich im ircnet in #php.de genannt :(

Da wurde mir aber gesagt das dieses schon immer so war und es so wie ich es hatte, nie funktioniert haben dürfte - aber es hat :( bis 2002 ganze 150 Tage lang :( (dann wurde das script mangels uptime-rekord nicht mehr aktiv). Ich hatte damals ne früher Version von FoxServ - welche komponenten drin waren, weiß ich aber net mehr ... mich würde jetzt irgendwie doch interessieren: WARUM es damals funktioniert hat? Was hat sich seitdem in DIESER richtung geändert ?

Und auch wenn ich mir jetzt viele Freunde hier mache: Es hat 100%ig so funktioniert wie ich es im ersten Posting erwähnt hatte ... Apache 1, PHP 4 (oder 3???), mySQL 3.

Gruß
Wuppi
Antworten

Zurück zu „Coding & Technik“