CREATE TABLE - wie jetzt?

g-zus

Erfahrenes Mitglied
Hi Leude,

so, also wieder mal ich.

Nicht, dass ich jetzt nicht wüsste wie man ne Tabelle erstellt, aber bei einem meiner Scripts (das zu lang is um es hier zu posten! =) )hab ich ein recht komisches und nervendes problem:

Es is ein Anmeldescrpt bei dem nicht nur der User in die Member-Tabelle eingefügt wird sondern auch noch eine Tabelle mit dem spezifischem Usernamen erstellt wird.
Die Tabelle is dann für das Guestboook des Users gedacht.

Das blöde is, dass beim Create-Befehl für die Tabelle jetzt aber immer ein PARSE-Fehler angezeigt wird.
Keine Ahnung warum. Sonst hat genau die gleiche Syntax ja auch immer funktioniert.

Ich habe mein Script in ne externe File geackt, aber da hats auch ned gefunzt.

So siehts aus:

PHP:
<?php

if($tablename_gb!=""){

   @mysql_connect("localhost", "user", "passwort") OR die ("Verbindung zum 
   Server fehlgeschlagen");
   @mysql_select_db ("dbname") OR die("Verbindung zur Datenbank fehlgeschlagen");

   #
   # Tabellenstruktur für Tabelle `$tablename_gb`
   #

   CREATE TABLE "$tablename_gb" (
       id int(4) NOT NULL auto_increment,
       gb_datum varchar(12) default NULL,
       gb_titel varchar(120) default NULL,
       gb_autor varchar(30) default NULL,
       gb_email varchar(100) default NULL,
       gb_homepage varchar(100) default NULL,
       gb_entry text,
       PRIMARY KEY  (id)
     ) TYPE=MyISAM;

   @mysql_close();

}

?>

Diese datei füge ich dann immer per include in mein anmeldescript ein (der übersicht halber!), aber dann zeigt es immer in zeile 13, also beim create-befhel einen PARSE-Error.
keine ahnung wieso.

der Name für die Tabelle setzt sich so zusammen:

PHP:
$tablename_gb = "gb_".$nickname;

Nickname ist halt der angegebene Username.
ich hab echt 0 Ahnung warum das so is, aber sonst funzt das doch imemr prima.
Meine anderen Befehele zum erstellen von Tabellen sehen ganz genau so aus(bis auf die Tabellenstruktur halt!) und die haben sonst auch immer funktioniert!

Hat wer von euch ne Idee?
 
Original geschrieben von g-zus
PHP:
<?php

if($tablename_gb!=""){

   @mysql_connect("localhost", "user", "passwort") OR die ("Verbindung zum 
   Server fehlgeschlagen");
   @mysql_select_db ("dbname") OR die("Verbindung zur Datenbank fehlgeschlagen");

   #
   # Tabellenstruktur für Tabelle `$tablename_gb`
   #

   CREATE TABLE "$tablename_gb" (
       id int(4) NOT NULL auto_increment,
       gb_datum varchar(12) default NULL,
       gb_titel varchar(120) default NULL,
       gb_autor varchar(30) default NULL,
       gb_email varchar(100) default NULL,
       gb_homepage varchar(100) default NULL,
       gb_entry text,
       PRIMARY KEY  (id)
     ) TYPE=MyISAM;

   @mysql_close();

}

?>
so kann es gar ned funktionieren, denn das ganze CREATE TABLE gesülze wird als PHP code angenommen.
du solltest entweder
PHP:
$query = "CREATE TABLE \"$tablename_gb\" (
id int(4) NOT NULL auto_increment,
gb_datum varchar(12) default NULL,
gb_titel varchar(120) default NULL,
gb_autor varchar(30) default NULL,
gb_email varchar(100) default NULL,
gb_homepage varchar(100) default NULL,
gb_entry text,
PRIMARY KEY  (id)
) TYPE=MyISAM;";
mysql_query($query);
oder
PHP:
mysql_query("CREATE TABLE \"$tablename_gb\" (
       id int(4) NOT NULL auto_increment,
       gb_datum varchar(12) default NULL,
       gb_titel varchar(120) default NULL,
       gb_autor varchar(30) default NULL,
       gb_email varchar(100) default NULL,
       gb_homepage varchar(100) default NULL,
       gb_entry text,
       PRIMARY KEY  (id)
     ) TYPE=MyISAM;");
machen und den # teil komplett löschen
 
Seid Ihr sicher, dass man bei einer Create-Anweisung den Tabellennamen in Anführungsstriche einfassen muss? "CREATE TABLE $tablename_gb ..." sollte auch schon reichen.
 
geht ohne anführungsstrichen....

hab nochmal nachgeschaut:

meine üblichen CREATE-TABLE-Scipts packen den querry auch zuerst in eine Variable und übergeben ihn dann.
hab ich ned gesehen und dachte mir bis dahin immer es geht ohne! =)
 
Zurück