[PHP/SQL] Tabellen werden nicht erstellt

Zweipunktnull

Commander
Registriert
Dez. 2004
Beiträge
2.546
Hallo!

Also, ähm, kann mir mal jemand sagen, wieso die gewünschten Tabellen nicht erstellt werden?

PHP:
include_once('includes/mysql_access.inc.php');

$sql = <<<SQL

CREATE TABLE vsbb_posts (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  date DATETIME,
  user VARCHAR(20),
  title VARCHAR(624),
  message TEXT,
  thread_id INT UNSIGNED NOT NULL
);

CREATE TABLE vsbb_subforums (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  title VARCHAR(100),
  subtitle VARCHAR(200),
  sort_order TINYINT UNSIGNED
);

CREATE TABLE vsbb_threads (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  date DATETIME,
  user VARCHAR(20),
  title VARCHAR(600),
  subforum_id TINYINT UNSIGNED
);

CREATE TABLE vsbb_users (
  user VARCHAR(20) PRIMARY KEY,
  password VARCHAR(50) UNIQUE,
  email VARCHAR(50) UNIQUE,
  town VARCHAR(20),
  date DATETIME,
  member TINYINT UNSIGNED,
  rights TINYINT UNSIGNED
)

SQL;

mysql_query($sql);

An der mysql_access.inc.php liegt es definitiv nicht - das habe ich überprüft. Die funktioniert einwandfrei. Es muss in dem oben geposteten Code ein Fehler sein.

thx schonma^^

EDIT: Wenn ich nur eine Tabelle erstellen will funktioniert es, aber sobald ich alle 4 erstellen will geht nix mehr :confused_alt:
 
Zuletzt bearbeitet:
Ähm... Ich stells mal als Frage... Fehlt bei der letzten Create Table nicht der Strichpunkt am Ende? ...aber eigentlich hab ich keine ahnung :king:
 
nee... das ist ja egal. danach kommt ja kein befehl mehr, also musste den auch net abgrenzen

ich versteh das net. wenn ich nur den SQL code so in phpmyadmin kopiere, dann funktioniert das auch, aber wenn ich die oben gepostete php datei ausführe, dann geht das nicht!?
 
Zuletzt bearbeitet:
was hat denn dieses "<<<SQL" zu bedeuten? und SQL aufruf am ende?

außerdem würde ich sagen, dass du in PHP nicht alles auf einmal machen kannst sondern jede tabelle ein einzelnes query... so klappts jedenfalls immer ;D
 
PHP:
foreach(explode(";",$sql) as $single_query) {
    $result = mysql_query($single_query);  
    if(!$result) {
        exit("Query '$single_query' failed, mysql said: ".mysql_error());
    }
}
</span>
</span>
 
Zurück
Oben