[MySQL] Probleem met aanmaken tables

Pagina: 1
Acties:

  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Ik heb een create_table.sql bestand gemaakt, waarmee ik automatisch al mijn tables in de database aanmaak. Als ik deze statements lokaal uitvoer gaat het goed.

Voer ik echter deze SQL statement uit bij onze host XS4ALL (MySQL versie 3.23.52) gaat het fout. Ik krijg de volgende foutmelding:
You have an error in your SQL syntax near '; CREATE TABLE download_typen ( DownloadTypeID smallint UNSIGNED NOT NULL' at line 14

Ik gebruik de volgende SQL code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
CREATE TABLE download_categorie (
  DownloadCatID         smallint    UNSIGNED NOT NULL auto_increment,
  DownloadCatType       ENUM('datasheet','livedemo','support','misc') NOT NULL,
  Priority              tinyint UNSIGNED NOT NULL,
  DownloadCatNaam       varchar(50) NOT NULL,
  DownloadCatNaamUK     varchar(50) NOT NULL,
  DownloadSubDir        varchar(25) NOT NULL,
  Tekst                 TEXT        NOT NULL,
  TekstUK               TEXT        NOT NULL,
  ImageID               smallint    UNSIGNED NOT NULL,
  ImagePosition         ENUM('bottom','top','floating') NOT NULL,
  PRIMARY KEY (DownloadCatID),
  UNIQUE (DownloadCatID)
);

CREATE TABLE download_typen (
  DownloadTypeID        smallint    UNSIGNED NOT NULL auto_increment,
  DtOmschrijving        varchar(50) NOT NULL,
  DtOmschrijvingUK      varchar(50) NOT NULL,
  DtIcon                varchar(25) NOT NULL,
  PRIMARY KEY (DownloadTypeID),
  UNIQUE (DownloadTypeID)
);


Het lijkt alsof er geen multiple SQL statements worden ondersteund, want elke keer wordt de fout bij het 2e statement gegeven na de puntkomma.

Heeft iemand een idee?

It’s nice to be important but it’s more important to be nice


  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

hoe voer je de queries in de database? Mysql command, phpmyadmin, ??

[ Voor 29% gewijzigd door thomaske op 17-12-2002 16:57 ]

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Goeie vraag, ik gebruik de volgende PHP code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function get_file($file) {
    if (file_exists($file)) {
        $content = join('', file($file));
        return($content);
    }
    return('');
}

error_reporting(E_ALL);

// Zorg dat we geen time-out problemen krijgen bij het maken van de DB
set_time_limit(200);

// Lees query file in en voer de query uit
$sql = get_file('create_tables.sql');
$result = mysql_query($sql) or die(mysql_error());

echo 'gelukt';

Ik heb de database connectie en database select weggelaten anders zou je het password kunnen zien ;)

De create_tables.sql file bevat dus de eerder vermelde SQL statements

[ Voor 5% gewijzigd door pjonk op 17-12-2002 17:08 ]

It’s nice to be important but it’s more important to be nice


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

PRobeer het eens zonder ; ?

En anders kan die inderdaad maar 1 query per keer denk ik... maar je kunt hem altijd zelf splitten natuurlijk op de punt-komma en los uitvoeren :)

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Zoals je in de documentatie kunt lezen:
The query must consist of a single SQL statement
Ziet ernaar uit dat je het script op ";" moet splitten. Dan krijg je alleen wel een probleem als je ergens een string hebt waar ";" in voorkomt...

Eigenlijk zeg ik dus RTFM :)

日本!🎌


  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Oke thanks da's duidelijk.
Lokaal voerde ik de query uit via phpMyAdmin, maar ik zie dat die ook de hele query parsed in single SQL statements. De code haal ik dan wel lekker uit phpMyAdmin

It’s nice to be important but it’s more important to be nice

Pagina: 1