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

MySQL installation funzt net..

Status
Für weitere Antworten geschlossen.

brainiac

Neues Mitglied
Ich habe mal eine Art CMS gemacht... Jetzt brauche ich hilfe... Wie kann ich in MySQL gleichzeitig 3 Tabellen mit diesen Dingen machen:

Tabelle gb:
id: int(100), unsigend, not null, auto increment, primary
datum: datei, not null
text: text, not null
name: varchar(150), not null

Tabelle user:
id: int(100), unsigned, not null, auto increment, primary
user: varchar(150), not null
passwort: varchar(50), not null


Tabelle message:
id: int(100), unsigned, not null, auto increment, primary
empf: varchar(150), not null
abs: varchar(150), not null
betreff: varchar(300), not null
inhalt: text, not null
datum: date, not null
 
Was denn nun?

Klappt das der der MySQL-Installation nicht, oder kannst Du keine Tabellen anlegen?

Zum Tabellen anlegen nutze ich normalerweise immer phpMyAdmin. Für die User-Tabelle könnte das SQL-Statement dann so aussehen:
Code:
CREATE  TABLE  `testdb`.`user` (
  `id` INT( 100  )  NOT  NULL  AUTO_INCREMENT ,
  `user` VARCHAR( 150  )  NOT  NULL ,
  `passwort` VARCHAR( 150  )  NOT  NULL ,
 PRIMARY  KEY (  `id`  ) ) ENGINE  =  MYISAM
Wobei ja ein int-Wert mit der Größe 100!!! absolut übertrieben ist.

Gruß thuemmy
 
hm... Danke... Nur da gibt es ein prob:
ich habe genau das selbe gemacht (nur andere Zeilenumbrüche), aber das geht nicht! Da wird immer false zurückgegeben
PHP:
$sql = 'CREATE TABLE $db_name.`user`
(`id` INT(100) UNSIGNED NOT NULL AUTO_INCREMENT,
`user` VARCHAR(150) NOT NULL,
`passwort` VARCHAR(50) NOT NULL,
PRIMARY KEY (`id`))
ENGINE = MyISAM';
$install = mysql_query($sql);
 
Also false wist Du nicht zurückbekommen, höchstens eine ungültige Resource-Id.

Lass Dir doch mal den MySQL-Fehler zurückgeben:
PHP:
$install = mysql_query($sql) or die(mysql_error());
Gruß thuemmy
 
Warum sollte man eigentlich nicht solche großen Werte für int verwenden?
Das steckt noch in mir und kommt aus einer Zeit, als mein erster Computer den ich hatte eine RAM-Kapazität von 1 KB hatte. Da hat man bei jeder Variable, die man deklariert hat, darauf geachtet, ob man die überhaupt braucht.

Wobei ich jetzt gar nicht weiß, ob MySQL die Größenangabe bei numerischen Werten unterstützt. Zumindest wird es beim CREATE nicht bemängelt. Standardmäßig ist ein INT in MySQL 4 Byte groß, und das umfasst vorzeichenlos einen Zahlenbereich von 0 bis 4294967295. Um das mal zu verdeutlichen: Wenn sich jede Sekunde ein neuer User anmeldet, und damit die id inkrementiert wird, dann könnten sich 136 Jahre lang ein neuer User anmelden.

Sollte das allerdings nicht reichen, dann bietet sich ja noch das BIGINT an, das geht dann bis 18446744073709551615! Und das gerade mal mit 8 Byte Speicherverbrauch.

Gruß thuemmy
 
mysql_error() liefert Dir im Falle eines Fehlers im SQL-Statement die Fehlerbeschreibung zurück.

Gruß thuemmy
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben