• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

MySQL Befehl zusammensetzten mit Fehler 1064

Status
Für weitere Antworten geschlossen.

CGollhardt

Mitglied
Hi, habe das Problem, dass ich mir einen MySQL befehl zusammenbasteln möchte, und das Ergebniss sieht auch wie ein MySQL Befehl aus. Ich finde einfach nicht den Fehler:

PHP:
	$building_befehl = 'CREATE TABLE buildings ( userID INTEGER,';
	foreach ($buildings as $nr => $building) {
		$building_befehl.= ' '. $nr . ' TINYINT NOT NULL DEFAULT "0",';
	}
	$building_befehl.= ' PRIMARY KEY (userID) )';
Ergibt
Code:
CREATE TABLE buildings ( userID INTEGER, 1 TINYINT NOT NULL DEFAULT "0", 2 TINYINT NOT NULL DEFAULT "0", 3 TINYINT NOT NULL DEFAULT "0", 4 TINYINT NOT NULL DEFAULT "0", 5 TINYINT NOT NULL DEFAULT "0", 6 TINYINT NOT NULL DEFAULT "0", 7 TINYINT NOT NULL DEFAULT "0", 8 TINYINT NOT NULL DEFAULT "0", 9 TINYINT NOT NULL DEFAULT "0", 10 TINYINT NOT NULL DEFAULT "0", 11 TINYINT NOT NULL DEFAULT "0", 12 TINYINT NOT NULL DEFAULT "0", 13 TINYINT NOT NULL DEFAULT "0", PRIMARY KEY (userID) )

Folgende Fehlermeldung
Code:
#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 '1 TINYINT NOT NULL DEFAULT "0", 2 TINYINT NOT NULL DEFAULT "0",

Danke für eure Hilfe
 
phpmyadmin sagt dir doch wie das geht:

Code:
CREATE TABLE `buildings` (
`userID` INT NOT NULL ,
`1` TINYINT DEFAULT '0' NOT NULL ,
`2` TINYINT DEFAULT '0' NOT NULL ,
PRIMARY KEY ( `userID` )
)

zudem ist nach deiner schleife dann ein komma zu viel.. dann setze alle spaltennamen zwischen ``
 
Zuletzt bearbeitet:
Vielen Dank.

Lag wohl an den schrägen Anführungszeichen. Bis jetzt hat es ja immer ohne geklappt, aber das lag wohl daran, dass ich bis jetzt immer Strings verwendet habe. Bei Integern gehts wohl nicht ohne

Danke nochmals, hat mir echt den Kopf zerbrochen

edit:
Kurze zwischenfrage, sollte man die `Zeichen immer verwenden? Habe davon noch niemals etwas in den Tuts gesehen...
 
Zuletzt bearbeitet:
ja, die solltest du immer verwenden, damit es nicht zu konflikten mit z.B. reservierten Wörtern kommt. wenn du z.B. eine Spalte date nennen willst musst du sie in jedem fall mit `` einfassen, da date reserviert ist
 
Status
Für weitere Antworten geschlossen.

Neueste Beiträge

Zurück
Oben