Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Per PHP mehrere MySQL-Tabellen erstellen - er macht nur die Erste!
Frage
Hallo!
Ich möchte per PHP in einem Zug mehrere MySQL-Tabellen erstellen. Die Verbindungseinstellungen sind alle richtig, und er beginnt zu arbeiten, allerdings wird nur die erste Tabelle erstellt, die zweite nicht. Der Code, der nachfolgt wird aber wieder ausgeführt!
// Tabelle "_users" erstellen
$sql = "CREATE TABLE ".$db_prefix."_users (
`userid` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`usergroup` INT( 1 ) NOT NULL,
$result = mysql_query($sql);
// Tabelle "_gebete" erstellen
$sql = "CREATE TABLE ".$db_prefix."_gebete (
`gebetid` BIGINT( 20 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`titel` TEXT NOT NULL,
`inhalt` TEXT NOT NULL,
) ENGINE = MYISAM";
$result = mysql_query($sql);
echo "Fertig!";
Das "Fertig" wird wieder ausgegeben, aber die Tabelle "_gebete" wird nicht erstellt; nur die Tabelle "_users".
Weis jemand, wieso?
Danke im Voraus!
Lg, ricc
Antwort 1 von Supermax
vor dem ersten mysql_query() fehlt anscheinend eine Zeile
Antwort 2 von ricc
Was ist falsch?
Antwort 3 von katy
Hallo ricc,
Supermax hatte es doch schon gesagt: in deinem Quellcode fehlt etwas, und zwar zwischen
`usergroup` INT( 1 ) NOT NULL,
und
$result = mysql_query($sql);
Im zweiten Quellcodeteil steht dort die Zeile
) ENGINE = MYISAM";
katy
Supermax hatte es doch schon gesagt: in deinem Quellcode fehlt etwas, und zwar zwischen
`usergroup` INT( 1 ) NOT NULL,
und
$result = mysql_query($sql);
Im zweiten Quellcodeteil steht dort die Zeile
) ENGINE = MYISAM";
katy
Antwort 4 von ricc
Ach so! Sorry. Das ist nur hier falsch, weil ich im Mittelteil etwas gekürzt habe.
In meiner Datei steht das schon richtig drinnen.
Also an dem liegt es nicht!
Habt ihr noch andere Ideen? Es muss etwas ganz einfaches sein, denn es fehlt ja auf den ersten Blick nichts, oder?
Lg, ricc
In meiner Datei steht das schon richtig drinnen.
Also an dem liegt es nicht!
Habt ihr noch andere Ideen? Es muss etwas ganz einfaches sein, denn es fehlt ja auf den ersten Blick nichts, oder?
Lg, ricc
Antwort 5 von Supermax
Wird keine Fehlermeldung ausgegeben?
Vielleicht schließt du versehentlich in dem weggelassenen Programmteil die SQL-Verbindung? Poste doch mal den kompletten Code, dann tun sich alle Beteiligten leichter.
Vielleicht schließt du versehentlich in dem weggelassenen Programmteil die SQL-Verbindung? Poste doch mal den kompletten Code, dann tun sich alle Beteiligten leichter.
Antwort 6 von ricc
$db_prefix = $_POST['db_prefix'];
// Verbindung zur Datenbank herstellen
$connection = mysql_connect($db_host, $db_user, $db_pwd) /* or die("Ihre Eingaben zur Verbindungsherstellung mit dem Datenbank-Server sind fehlerhaft!") */;
mysql_select_db($db_datenbank, $connection) /* or die("Die Verbindung ist hergestellt. Allerdings kann die angegebene Datenbank nicht gefunden werden!") */;
// Tabelle "_settings" erstellen
$sql = "CREATE TABLE ".$db_prefix."_settings (
`erstellt` VARCHAR( 18 ) NOT NULL PRIMARY KEY,,
`von` VARCHAR( 20 ) NOT NULL,
`email` VARCHAR ( 50 ) NOT NULL
) ENGINE = MYISAM";
$result = mysql_query($sql);
// Tabelle "_users" erstellen
$sql = "CREATE TABLE ".$db_prefix."_users (
`userid` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`usergroup` INT( 1 ) NOT NULL,
`username` VARCHAR( 20 ) NOT NULL,
`password` VARCHAR( 50 ) NOT NULL,
`email` VARCHAR( 35 ) NOT NULL,
`lastlogin` VARCHAR( 25 ) NOT NULL,
`sessionid` VARCHAR( 100 ) NOT NULL,
`regip` VARCHAR( 13 ) NOT NULL
) ENGINE = MYISAM";
$result = mysql_query($sql);
// Tabelle "_gebete" erstellen
$sql = "CREATE TABLE ".$db_prefix."_gebete (
`gebetid` BIGINT( 20 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`titel` TEXT NOT NULL,
`inhalt` TEXT NOT NULL,
`kategorie` INT( 5 ) NOT NULL,
`erstellt` VARCHAR( 18 ) NOT NULL,
`von` VARCHAR( 20 ) NOT NULL,
) ENGINE = MYISAM";
$result = mysql_query($sql);
// Tabelle "_gebete_kategorien" erstellen
$sql = "CREATE TABLE ".$db_prefix."_gebete_kategorien (
`kategorieid` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`titel` TEXT NOT NULL,
`erstellt` VARCHAR( 18 ) NOT NULL,
`von` VARCHAR( 20 ) NOT NULL,
) ENGINE = MYISAM";
$result = mysql_query($sql);
echo "Alle Tabellen erstellt!";Antwort 7 von ricc
Also: die erste Tabelle wird immer erstellt, die weiteren nicht. Aber zum Schluss wird "Alle Tabellen angelegt!" ausgegeben!
Antwort 8 von ricc
Problem gelöst:
bei den weiteren Tabellen stand nach dem letzten NOT NULL immer ein Komma, das darf da nicht hin!
Trotzdem danke für die Bemühungen!
Lg, ricc
bei den weiteren Tabellen stand nach dem letzten NOT NULL immer ein Komma, das darf da nicht hin!
Trotzdem danke für die Bemühungen!
Lg, ricc

