• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] [PHP] Fehler "You have an error in your SQL syntax"

Transformator

New member
Hallo Leute,

es ist immer das gleiche :

WO IST DER FU**ING FEHLER ???

Ich glaube dieses SQL mag mich nicht !

CODE : http://pastebin.com/ECPGaj0e

Feher :
Code:
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 '1', '230', 'Hauptfrucht', '2012-12-12', 'Hallo W' at line 1

Ach ja übrigens das passiert wenn ich was zusammenfasse stadt 10 befehle zu schreiben !
 
Zuletzt bearbeitet von einem Moderator:
AW: Irgentwie mag mich dieses SQL nicht !!! - Nerfiger SQL Fehler

Ja, du hast leider recht;
es ist immer das gleiche


Nochmal: VOR dem Erstellen eines Themas lesen!!!

Eine Überschrift soll das Problem beschreiben!


Und genau das meinte ich im anderen Thread:
WO IST DER FU**ING FEHLER ???

Ich glaube dieses SQL mag mich nicht !

Irgentwie mag mich dieses SQL nicht !!! - Nerfiger SQL Fehler
DAS finde ich nerfig!

PS: eigentlich brauchst du für dieses Problem keinen neuen Thread, denn es handelt sich hier mit größter Wahrscheinlichkeit wieder um einen Syntax-Fehler!
 
Zuletzt bearbeitet:
AW: Irgentwie mag mich dieses SQL nicht !!! - Nerfiger SQL Fehler

@Transformator: Bitte befolge die Hinweise von Julian, sonst müssen wir einschreiten. Bilde bitte vernünftige Thread Titel und schreibe ganze Sätze mit aussagekräftigen Fragen und was du versucht hast. Eigentlich wie man sich im echten Leben auch benimmt.
 
AW: Irgentwie mag mich dieses SQL nicht !!! - Nerfiger SQL Fehler

OK, zurück zu deinem Problem: escape doch zuallererst mal die Eingaben, wie dich auch kkapsner bereits wiederholt darauf hingewiesen hat. Also z.B.
PHP:
mysql_real_escape_string($_POST["standort"]);
//usw.
 
AW: Irgentwie mag mich dieses SQL nicht !!! - Nerfiger SQL Fehler

nur so als Hinweis, INTs werden in SQL nicht escaped.
 
Erstmal Sorry aber wie ändert man den Eintrags Titel ? kann ich das überhaupt ?

Ach und ich glaube ich habs mal erwähnt die website ist privat !

Ich hab den fehler selbst gefunden oder besser gesagt alles noch mal getippt und dan hat es funktioniert !

DANKE
 
@Dormilich: Das ist SQL ziemlich egal. Du kannst auch INTs escapen - wenn da dann was anderes als eine Zahl drin steht, dann meckert SQL. Ich maskiere immer alles, dann brauch' ich mich nicht darum zu kümmern, dass ich die Nutzereingabe des INTs irgendwie besonders validieren muss.

@Transformator: Den Threadtitel kann man beim ersten Beitrag ändern.
Was war denn jetzt der Fehler?

Ich hab' auch einige private Sachen, die manchmal sogar wirklich nur auf meinem localhost laufen, und da bin ich oft froh, dass ich maskiere - dann hab' ich kein Problem, wenn ich mich mal vertippe oder was eingebe, an das ich beim Programmieren noch nicht gedacht habe.

PS: Vor ein Satzzeichen gehört kein Leerzeichen.
 
@Dormilich: auch die Quotes sind SQL egal... und wenn der Nutzer da 10'000 reinschreibt, weil er das so gewohnt ist, kommst sonst ein noch komischerer SQL-Fehler. Das escapen mit mysql_real_escape_string() erwartet ja auch, dass du das dann in Quotes packst. Mit PDO ist das Ganze natürlich ein anderes Thema, da gibt es dann ja PDO::pARAM_INT.

PS: PhpMyAdmin verwendet bei INTs auch Quotes...
 
@Dormilich: Ich verstehe dich jetzt nicht ganz. Um was ging es dir denn dann?
Wir haben doch eine Nutzereingabe, die in der DB als INT gespeichert wird. Die müssen wir irgendwie validieren/sanitieren. Um sich schnell und effektiv dagegen zu schützen kann man Maskierung verwenden, auch wenn es nicht besonders elegant und benutzerfreundlich ist (die Fehlermeldung sagt dem Nutzer dann wahrscheinlich erstmal nicht besonders viel).

@Transformator: passiert - kein Problem.
 
@Transformator

1. setze an erster Stelle deines php-Dokumentes error_reporting(E_ALL);
2.

PHP:
$sql = "INSERT INTO (bla)VALUES(blubb)";

$ergebnis = mysql_query($sql) or die(mysql_error());

3. wo kommt denn $id her?

HTML:
        ) VALUES (
                '" . $id+1 . "',

Wenn du das so eingibst und dein ID-Feld in der DB ein autoincrement ist MUSS das einen Fehler erzeugen! Ich würde sagen, überprüfe mal deine Datenbankfelder...
 
@dertypdernixkan:
zu 1.: PHP-Fehler sollte man ausgeben lassen, hätte hier aber nichts gesagt, da es um MySQL-Fehler ging.
zu 2.: Das MySQL hat einen Syntaxfehler und ich verstehe nicht, was du damit sagen willst.
zu 3.: autoincrement arbeitet nur, wenn die ID beim INSERT nicht angegeben oder NULL ist. Man darf da schon selbst was eingeben und das erzeugt keinen Fehler.
 
Zurück
Oben