SQL Error bei Schreiben in Datenbank

DEYS

Neuling
Thread Starter
Mitglied seit
11.05.2004
Beiträge
646
Ort
Berlin
Hallöchen,

ich möchte gern Dinge in eine Datenbank schreiben, aber es kommt ein für mich seltsamer Error:

Skript:
PHP:
$sql = "INSERT INTO 
				projekte 
					(kategorie,
					name,
					subkategorie,
					banner,
					leiter,
					mitwirkende,
					fortschritt,
					phase,
					beginn,
					release,
					beschreibung,
					anz_screens,
					screen1,
					screen2,
					screen3,
					screen4,
					screen5,
					screen6,
					screen7,
					screen8,
					screen9,
					screen1_prev,
					screen2_prev,
					screen3_prev,
					screen4_prev,
					screen5_prev,
					screen6_prev,
					screen7_prev,
					screen8_prev,
					screen9_prev,
					dauer,
					groesse,
					anz_dls,
					download1,
					download1_name,
					download2,
					download2_name,
					download3,
					download3_name)
				VALUES
					('$kategorie',
					'$name',
					'$subkat',
					'$banner',
					'$leiter',
					'$mitwirkende',
					'$fortschritt',
					'$phase',
					'$beginn',
					'$release',
					'$beschreibung',
					'$anzahl_ss',
					'$ss[1]',
					'$ss[2]',
					'$ss[3]',
					'$ss[4]',
					'$ss[5]',
					'$ss[6]',
					'$ss[7]',
					'$ss[8]',
					'$ss[9]',
					'$ss_prev[1]',
					'$ss_prev[2]',
					'$download[1]',
					'$download_name[1]',
					'$download[2]',
					'$download_name[2]',
					'$download[3]',	
					'$download_name[3]')";

Error:
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 'release, beschreibung, anz_screens, screen1, screen2, ' at line 12

Habe ein anderes Skript, welches ebenfalls Daten in die Datenbank schreibt, aber das funktioniert ohne Probleme, obwohl es fast das gleiche ist.
Dieses hier ist nur eine Erweiterung dessen.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
ich hatte mal einen ähnlichen fehler... damals lag es daran das ein spalten name, mit einem sql befehl übereinstimmte. Fass einfach mal die ganzen spalten namen in `` ein.

MfG
Alex
 
Hab ich probehalber schon beim der ersten Spalte probiert.
Dann wird mir genau dort ein Syntaxfehler angezeigt.

Hab grad nicht soviel Zeit, werd's deshalb heute Nachmittag mit allen Spalten probieren.
 
Muss denn nicht die Anzahl der Values mit der Anzahl der Insert Felder übereinstimmen?
Du versuchst hier 39 Felder mit 29 Values zu füllen, vielleicht liegt darin dein Problem.
Ansonsten denke ich hat Nascar mal wieder recht und z.B. der Feldname "Release" gehört zu einer Liste für MySQL reservierte funktionsnamen/wörter
gruß wario!
 
lol das mit den 39feldern und 29values hab ich garnicht gesehn ;) aber ich denke mal das der fehler als nächstes angezeigt würde, wenn der andere behoben ist


9.5. Ist MySQL pingelig hinsichtlich reservierter Wörter? schrieb:
Ein reserviertes Wort darf als Bezeichner verwendet werden, wenn Sie es in Anführungszeichen setzen.

und was heißt das ich wieder mal recht habe? sonst bin ich doch immer der arsch der unrecht hat :fresse:
 
Zuletzt bearbeitet:
Ich fühl mich grad irgendwie blöd. :fresse:

Ich dachte mit `` meintest du die normalen ' '.
Hab das beim ersten Mal mit letzteren probiert, was nicht funktioniert hat.
Falsche Anzahl an Values ist noch dümmer...

Naja, vielen Dank für eure Hilfe, jetzt funktioniert's super. :)
 
Zuletzt bearbeitet:
tja mysql macht da schon unterschiede ;) und ich find die auch gut so. Wegen der Unterscheidung von ' ' , " " und ` `
Aber ehrlich gesagt setze ich die ` ` sogut wie nie ;) ist mir zuviel arbeit die zu setzen :d
 
Moin,

gehört nicht zum eigentlichen Thema aber du solltest dir gedanken machen um die Modellierung deiner Datenbank.
Kann mir ehrlich gesagt nicht vorstellen, dass in einem Entity soviele Attribute nötig sind ;)

Insbesondere das mit den Screens solltest du doch schon auslagern, da du dann später auch noch weitere Bilder einfügen kannst (so haste ne begrenzte Zahl) - selbe gilt für den ganzen Download Kram.

Das Attribut namens `mitwirkende` ... was willste da genau reinschreiben? Hab da irgendwie die befürchtung, dass du da Probleme bekommen wirst (->Inhalt eines Attributes einer Spalte sollte immer atomar sein ;))

Zu deinem Problem:
Setz mal deine Variablen so:

'".$kategorie."',
'".$name."',

...

Alternativ überprüfe mal ob die Attribute überhaupt in deiner MySQLTabelle existieren ;)
MfG TrOuble
 
Zuletzt bearbeitet:
Was genau meinst du mit auslagern?
Kann mir darunter grad gar nichts vorstellen.

Bei `mitwirkende` soll ein einfacher String rein nach dem Muster Name (Tätigkeit), zB Holger (Schreiben).

Und das Problem selbst haben ich schon dank der `` Anführungszeichen bereits gelöst.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh