PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler beim erstellen einer Tabelle



Wishmaster
03.01.2004, 06:42
Also ich habe eine sql Datei die ich bei My SQL ausführen möchte. Die ersten tabellen werden alle Korrekt angelegt. Doch dann bricht My SQL ab mit folgendem Fehler.

You have an error in your SQL syntax near 'limit int(10) unsigned NOT NULL default '0',
block_reason varchar(255) NOT NU' at line 28


Der Code, der zu anlegenden Tabelle, in der sql Datei ist folgender:

CREATE TABLE ls_user (
id int(10) unsigned NOT NULL auto_increment,
mail varchar(255) NOT NULL default '',
vor varchar(100) NOT NULL default '',
nach varchar(100) NOT NULL default '',
time int(10) unsigned NOT NULL default '0',
klammid int(10) unsigned NOT NULL default '0',
pw varchar(50) NOT NULL default '',
expire int(10) unsigned NOT NULL default '0',
guthaben double(10,2) NOT NULL default '0.00',
paidexpire int(10) unsigned NOT NULL default '0',
werber int(10) unsigned NOT NULL default '0',
refver double(10,2) unsigned NOT NULL default '0.00',
block tinyint(1) unsigned NOT NULL default '0',
popups tinyint(1) unsigned NOT NULL default '1',
bew tinyint(1) unsigned NOT NULL default '0',
paidmails tinyint(1) unsigned NOT NULL default '1',
news tinyint(1) unsigned NOT NULL default '0',
lastanzcheck int(10) unsigned NOT NULL default '0',
surfbar_on tinyint(1) unsigned NOT NULL default '0',
surfpunkte double(10,2) unsigned NOT NULL default '0.00',
lastsurfbarview int(10) unsigned NOT NULL default '0',
lastcheck int(10) unsigned NOT NULL default '0',
check_right int(10) unsigned NOT NULL default '0',
lastact int(10) unsigned NOT NULL default '0',
paidbannerexpire int(10) unsigned NOT NULL default '0',
l4s_lose int(10) unsigned NOT NULL default '0',
limit int(10) unsigned NOT NULL default '0',
block_reason varchar(255) NOT NULL default '',
anzdesign tinyint(1) NOT NULL default '1',
anzkurz varchar(5) NOT NULL default 'gif',
land char(2) NOT NULL default '',
aktien double NOT NULL default '0',
vergeben varchar(255) NOT NULL default '0',
lastsurfbarlose int(10) unsigned NOT NULL default '0',
PRIMARY KEY (id)
) TYPE=MyISAM COMMENT='Enthält Lose4Start-User';

Wo ist der Fehler ?

Chocwise
03.01.2004, 07:09
Schau in Zeile 27 deines Befehls.
Den Feldnamen "limit" darfst du nicht benutzen, das nimmt schon (My)SQL für sich in Beschlag. ;)
Such dir einen anderen feldnamen aus.
Und wenn du grad dabei bist, überleg nochmal ob du wirklich den Feldnamen "time" in Zeile 6 verwenden möchtest. Spätestens mit PHP würdest du evtl. Schwierigkeiten bekommen. :)

Wishmaster
03.01.2004, 16:02
Komisch, dabei ist der Fehler doch in Zeile 28:confused:

Freezy
03.01.2004, 21:08
Original geschrieben von Wishmaster
Komisch, dabei ist der Fehler doch in Zeile 28:confused:

Schau dir doch nochmal die Fehlermeldung an, oder willst du verleugnen das "limit" drin vorkommt? :D

Chocy hat sich eben nur verzählt ^^

Jesus_666
04.01.2004, 02:27
Original geschrieben von Freezy
Schau dir doch nochmal die Fehlermeldung an, oder willst du verleugnen das "limit" drin vorkommt? :D

Chocy hat sich eben nur verzählt ^^
Oder Zeile 27 ist trotz der ungültigen Verwendung des Wortes limit korrekt, der Fehler tritt jedoch erst in der nächsten Zeile auf.
In der bunten Wunderwelt der Programmiersprachen ist es durchaus nicht unüblich, daß eine falsche Zeile erst an einem anderen Ort einen tatsächlichen Fehler verursacht.


Wenn du die Tabelle mit PHP benutzen willst solltest du die Namen time und mail vermeiden.

Chocwise
04.01.2004, 06:18
Original geschrieben von Jesus_666
Oder Zeile 27 ist trotz der ungültigen Verwendung des Wortes limit korrekt, der Fehler tritt jedoch erst in der nächsten Zeile auf...
Mööp!
Ich habs getestet. ;)
Ich hatte zwar schon die Ahnung das es "limit" oder "time" sein wird, hab den SQL-Befehl dann an der eigenen DB getestet, hat nicht gefunzt. Hab "limit" anders benannt und siehe da, es klappte.
Also war es in der Tat eben der Fehler. ;)

Jesus_666
04.01.2004, 06:28
Original geschrieben von Chocwise
Mööp!
Ich habs getestet. ;)
Ich hatte zwar schon die Ahnung das es "limit" oder "time" sein wird, hab den SQL-Befehl dann an der eigenen DB getestet, hat nicht gefunzt. Hab "limit" anders benannt und siehe da, es klappte.
Also war es in der Tat eben der Fehler. ;)
Was eben alle dachten.

BTW, das korrekt in meinem Post gehört in Anführungszeichen. Die Zeile ist nicht korrekt, der Fehler wird jedoch erst von der nächsten Zeile wirklich ausgelöst.