Webdesign in Siegen

MySQL Fehler beim Tabellen erstellen

Fragen zum Thema PHP können hier gestellt werden

Moderator: Basti

MySQL Fehler beim Tabellen erstellen

Beitragvon Basti am 23.03.2007, 16:32

Hi,

bin gerade dabei Datenbanken für ein Script über PHP zu installieren, aber irgendwie klappt der Befehl nicht. Ich weiß überhaupt nicht warum das nicht klappt, hab schon so allesmögliche probiert.

Hier der SQL Befehl (im PHP Code hat er die gleichen Syntaxe):

Code: Alles auswählen
CREATE TABLE IF NOT EXISTS `sfd_Bans` (
`ID` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
`IP` VARCHAR(16) NOT NULL,
`Zeit` TIMESTAMP NOT NULL,
`Attempt` TINYINT UNSIGNED(1) NOT NULL,
PRIMARY KEY (`ID`)
)


Der Fehler liegt nach phpMyAdmin (hab's da mal getestet) in Zeile 5 an der Stelle wo (1) ... steht. Also kurz davor muss der Fehler eigentlich auftreten, die Feldangaben müssten aber klappen, da ich in einer anderen Tabelle die gleichen Angaben benutzt habe und es klappte :(

Wer eine Idee hat, woran es liegt, einfach hier hin schreiben. Würd mir echt helfen ;)
Benutzeravatar
Basti
Moderator
 
Beiträge: 1974
Registriert: 15.06.2006, 17:33
Wohnort: Rheinbreitbach

Beitragvon Manuel am 23.03.2007, 17:37

Kommt denn die (1) wirklich hinter das unsigned? Denn die (1) ist ja eher eine Art Größenangabe für deinen Typ, also tinyint. Sonst schauts eigentlich richtig aus. Könnte dir höchstens empfehlen, genau diese Tabelle in PhpMyAdmin anzulegen und dir dann davon den Quellcode anzuschauen, der ja da immer ausgegeben wird.

Lg,
Manuel ;-]
Benutzeravatar
Manuel
Site Admin
 
Beiträge: 9114
Registriert: 10.12.2004, 19:29
Wohnort: Asbach

Beitragvon Basti am 23.03.2007, 17:55

Ja, also die (1) kommt direkt hinter das UNSIGNED, da der Spaltentyp TINYINT UNSIGNED ist und ich eine höchste Länge von einem Zeichen benötige bzw. möchte.
Bei einer anderen Tabelle mit einer Spalte dieses Typs und gleichen Angaben hat es ja komischerweise geklappt.

Wenn ich diesen Code bei phpMyAdmin ausführen lassen möchte, klappt es ja eben nicht, weil ein Fehler drinne ist. Deshalb kann ich mir auch keinen Quellcode ansehen, wenn ich dich richtig verstanden habe in dem was du meintest ;)

Ich hab auch schon versucht das UNSIGNED wegzulassen oder sonst als Spaltentyp normal INT zu nehmen, hat komischerweise aber auch nicht geklappt.
Benutzeravatar
Basti
Moderator
 
Beiträge: 1974
Registriert: 15.06.2006, 17:33
Wohnort: Rheinbreitbach

Beitragvon Manuel am 23.03.2007, 17:58

Nein ich meinte, dass du dir diese Tabelle so in PhpMyAdmin erstellst, ohne Quellcode sondern mit "Klicken". ;)
Danach bekommt man den Quellcode dafür ja gepostet.
Benutzeravatar
Manuel
Site Admin
 
Beiträge: 9114
Registriert: 10.12.2004, 19:29
Wohnort: Asbach

Beitragvon Basti am 23.03.2007, 20:55

OK, dann war's ein Missverständnis. Werde es gleich mal ausprobieren, danke für den Hinweis ;)
Benutzeravatar
Basti
Moderator
 
Beiträge: 1974
Registriert: 15.06.2006, 17:33
Wohnort: Rheinbreitbach

Beitragvon Basti am 24.03.2007, 12:45

So, Problem ist gelöst.

@Manuel: Wie du schon richtig vermutet hattest, musste die (1) hinter das TINYINT und nicht hinter UNSIGNED. Komisch ist nur, dass es bei einer anderen Tabelle auch hinter UNSINGED geklappt hatte. Aber was soll's, hauptsache es klappt endlich ;)

Danke für den Tipp :thumbsup:
Benutzeravatar
Basti
Moderator
 
Beiträge: 1974
Registriert: 15.06.2006, 17:33
Wohnort: Rheinbreitbach


Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste