My-Sql Fehler beim Eintragen von neuen Daten

icecoldkilla
Was ist an diesem Code falsch :

php:
1:
2:
3:
4:
5:
6:
7:
8:
if(!mysql_query("INSERT INTO Comment
    (Titel,Thread,Inhalt,Datum,Autor)
VALUES
    ('$_POST[Name]',
     '$_POST[Thread]',
     '$_POST[Nachricht],
     NOW(),
     '$_POST[Autor]')")) { echo("Fehler"); }


Die Datenbank "Comment" wurde folgendermaßen hergestellt :

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
if(mysql_query("CREATE TABLE Comment (
    ID     INT AUTO_INCREMENT PRIMARY KEY,
    Titel  VARCHAR(60),
    Thread  VARCHAR(60),
    Inhalt TEXT,
    Datum  DATETIME,
    Autor VARCHAR(15)

    
)")) { echo("Datenbank 'Comment' erfolgreich bearbeitet </br>"); } else {echo(" Fehler "); }


Tabelle herstellen ging problemlos, aber ich kann nichts hineinschreiben, es wird immer, wie vordefiniert "Fehler" ausgegeben, und in der Tabelle befinden sich weiterhin keine Inhalte.

Hat jemand ne Idee??

MfG

icecoldkilla
bossi
Also Nimm mal den Code Teil, und guck mal ob die Post Variablen alle Richtig sind:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
if(!mysql_query("INSERT INTO Comment
VALUES
    ("'.$_POST[Name].'",
     "'.$_POST[Thread].'",
     "'.$_POST[Nachricht].'",
     NOW(),
     "'.$_POST[Autor].'")")) 
{ 
  echo"Fehler"; 
}


Ich hoff es klappt so
icecoldkilla
Hallo,

DIe Anführungszeichen mussten weg, da sonst :

php:
1:
Parse errorparse errorunexpected T_CONSTANT_ENCAPSED_STRING in C:Programmexampphtdocsnewscomment.php on line 71

kam

Fehler bleibt aber immernoch traurig
lycoos
Nimm mal die Fehler ausgabe raus und führe es so aus! Dann zeig mal die fehlermeldung
[kamui]
Wieso machst dus nichtso:

php:
1:
mysql_query("INSERT INTO Comment VALUES ('', '".$_POST['Name']."', '".$_POST['Thread']."', '".$_POST['Nachricht'].",NOW(), '".$_POST['Autor']."')") or die("Fehler");
?
icecoldkilla
@ [kamui]
geht nicht Mauer Versagt unglücklich traurig

@lycoos
dann kommt gar nichts, einfach nichts, nicht mal ein Wort...

MfG

icecoldkilla
24Bytes
geh in phpMyAdmin, füge dort beispiel werte in die DB ein, dann kommt der Befehl, der ausgeführt werden muss, dann ersetzt du einfach alle werte mit ".$_POST['wert']." so kannst du sichergehen, das der Befehl auf diesem server funktioniert.


Desweiteren: Sicher das MySQL Verbindung besteht ? Den Fehler habe ich oft Mauer
[kamui]
Mach mal folgendes, dann siehst du gleich auch den Fehler:
php:
1:
mysql_query("INSERT INTO Comment VALUES ('', '".$_POST['Name']."', '".$_POST['Thread']."', '".$_POST['Nachricht'].",NOW(), '".$_POST['Autor']."')") or die("Fehler: <pre>".mysql_error()."</pre>");
icecoldkilla
php:
1:
You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near 'hdg'at line 1


Das kommt, ich verstehe diese Fehlermeldung aber leider nicht, da ich noch ein My-Sql neuling bin, ich habe früher ja immer TXT Programmiert großes Grinsen

Wisst ihr, was ich ändern sollte??

MfG

icecoldkilla
[kamui]
Welche Variable hat den Wert "hdg" ?
xundy
Du solltest deine werte auch entsprechend maskieren bevor du die in deine datenbank schreibst, dein Query ist ja ne Einladung für sql-injections.

mfg
icecoldkilla
$_POST[Autor] hat den Wert gehabt

MfG

icecoldkilla
seb
sollte es nicht besser
php:
1:
$_POST['autor']

heißen
24Bytes
Zitat:
Original von icecoldkilla
php:
1:
You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near 'hdg'at line 1


Das kommt, ich verstehe diese Fehlermeldung aber leider nicht, da ich noch ein My-Sql neuling bin, ich habe früher ja immer TXT Programmiert großes Grinsen

Wisst ihr, was ich ändern sollte??

MfG

icecoldkilla

php:
1:
Du hast eine Störung in deiner SQL Syntaxdas Handbuch überprüfendas deiner MySQL Bedienerversion für die rechte Syntax Gebrauch nahe „HDG“an Linie 1 entspricht

So übersetzt google die Fehlermeldung smile

d.h. wenn nahe $_POST['autor'] liegt es an "NOW()" ... welche MySQL Version hast du ?
xundy
code:
1:
'".$_POST['Nachricht'].",NOW(),


das sollte doch nun zu erkennen sein da fehlt ein ' vor dem Komma

mfg
lycoos
Kann das sein da du keinen Edtior mit Highlight Funktion hast? Wenn nein, lege dir mal einen zu. Ist sehr wichtig.


Ich empfehle Proton...
24Bytes
ich mag diese kleine fehler Augen rollen
icecoldkilla
Hallo,

Ich Code immer mit dem stink-normalen Text-Editor, aber ich habe immernoch nicht verstanden wo der Fehler liegt.

Die My-Sql Version... gute Frage, auf jeden Fall wird NOW() unterstützt, da ich es in dem Code Xtausend mal verwendet habe, und es immer funktioniert hat.

MfG

icecoldkilla
xundy
Ein stinknormaler Texteditor ist nich wirklich geeignet um vernüftig zu coden und auch kein Zeichen besonderer Fähigkeiten,
also besorge dir nen vernüftigen php-Editor (Weaverslave wäre zum Beispiel Freeware).

Und den fehler habe ich dir oben schon gezeigt
falsch
code:
1:
'".$_POST['Nachricht'].",NOW(),

richtig
code:
1:
'".$_POST['Nachricht']."',NOW(),


mfg
icecoldkilla
Hallo,

Mir ist klar, dass es kein Zeichen besonderer Fähigkeit ist, mit dem normalen TXT Editor zu coden, da codes ja immer die selben sind, der andere Editor ( den ich mir bald anschauen werde ) macht die Codes ja auch nicht von selber....

Also, Danke für die Hilfe großes Grinsen

MfG

icecoldkilla