Avatar billede kris75 Mester
01. marts 2009 - 08:20 Der er 12 kommentarer og
1 løsning

Flytning af forum til ny server

Hej
Jeg er igang med at flytte et woltlab burning board forum til en ny server, men får følgende fejl i phpmyadmin når jeg prøvet at importere databasen:

Fejl

SQL-forespørgsel:

CREATE TABLE bb1_acpmenuitemgroups(
itemgroupid smallint( 5 ) unsigned NULL AUTO_INCREMENT ,
title varchar( 255 ) NULL ,
condition text NULL ,
conditiontype enum( 'OR', 'AND' ) NULL DEFAULT 'OR',
showorder smallint( 5 ) unsigned NULL DEFAULT '0',
acpmode tinyint( 3 ) unsigned NULL DEFAULT '0',
PRIMARY KEY ( itemgroupid )
);

MySQL returnerede: Dokumentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'condition text NULL,
    conditiontype enum('OR','AND') NULL DEFAULT 'OR',
    showo' at line 4


Hvad kan fejlen være?
Mvh.
Kris
Avatar billede nicklasb Nybegynder
01. marts 2009 - 11:20 #1
Det er fordi "condition" er et reserveret ord ( http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html )
Prøv eventuelt med

...
`condition` text NULL ,
...

eller find et andet navn til feltet.
Avatar billede nicklasb Nybegynder
01. marts 2009 - 11:22 #2
.. og forklaringen kan så selvfølgelig være, at du har eksporteret fra en gammel version af MySQL til en ny version > 5.0. "condition" er først blevet reserveret, efter version 5.
Avatar billede kris75 Mester
02. marts 2009 - 12:18 #3
Så er det ændret, men får denne fejl:

Fejl

SQL-forespørgsel:

# WoltLab Burning Board 2.3.6 Database Backup # generated: 02-15-2009 14:47 drop bb1_access ( boardid int(11) unsigned NULL DEFAULT '1', userid int(11) unsigned NULL DEFAULT '0', can_view_board tinyint(1) NULL DEFAULT '-1', can_enter_board tinyint(1) NULL DEFAULT '-1', can_read_thread tinyint(1) NULL DEFAULT '-1', can_start_topic tinyint(1) NULL DEFAULT '-1', can_reply_topic tinyint(1) NULL DEFAULT '-1', can_post_poll tinyint(1) NULL DEFAULT '-1', can_upload_attachments tinyint(1) NULL DEFAULT '-1', can_download_attachments tinyint(1) NULL DEFAULT '-1', can_post_without_moderation tinyint(1) NULL DEFAULT '-1', can_close_own_topic tinyint(1) NULL DEFAULT '-1', can_use_search tinyint(1) NULL DEFAULT '-1', can_vote_poll tinyint(1) NULL DEFAULT '-1', can_rate_thread tinyint(1) NULL DEFAULT '-1', can_del_own_post tinyint(1) NULL DEFAULT '-1', can_edit_own_post tinyint(1) NULL DEFAULT '-1', can_del_own_topic tinyint(1) NULL DEFAULT '-1', can_edit_own_topi[...]

MySQL returnerede: Dokumentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'boardid int(11) unsigned NULL DEFAULT '1',
    userid int(11) unsigned NULL DEFAUL' at line 1
Avatar billede kris75 Mester
02. marts 2009 - 13:00 #4
Hvad kan jeg gøre med ordet condition? Hvis det skyldes at det er forskellige versioner mysql databaser, hvad kan jeg så gøre der?
Avatar billede nicklasb Nybegynder
02. marts 2009 - 19:10 #5
Der er gået et eller andet galt med kopieringen i din kommentar #3. Det giver ikke rigtig mening det der står under "SQL-forespørgsel".

Prøv eventuelt at køre den samme forespørgsel som du har poster i det oprindelige indlæg og udskrift den linje jeg nævnte.
Den skal se således ud:

CREATE TABLE bb1_acpmenuitemgroups(
itemgroupid smallint( 5 ) unsigned NULL AUTO_INCREMENT ,
title varchar( 255 ) NULL ,
condition text NULL ,
conditiontype enum( 'OR', 'AND' ) NULL DEFAULT 'OR',
showorder smallint( 5 ) unsigned NULL DEFAULT '0',
acpmode tinyint( 3 ) unsigned NULL DEFAULT '0',
PRIMARY KEY ( itemgroupid )
);

Hvis ikke du vil omdøbe dit "condition" -felt, skal du alle steder hvor du bruger ordet som navn på dit felt skrive det som `condition`. For eksempel kan du i en SELECT hente indholdet i feltet med:

SELECT itemgroupid, title, `condition` FROM bb1_acpmenuitemgroups;

Men det absolut letteste, ville være hvis du omdøber feltet til noget du med en rimlig sikkerhed, ikke risikere senere bliver reserveret. For eksempel som du har gjort det med "itemgroupid".
Avatar billede nicklasb Nybegynder
02. marts 2009 - 19:10 #6
Hov, den skal selvfølgelig se ud som følger:

CREATE TABLE bb1_acpmenuitemgroups(
itemgroupid smallint( 5 ) unsigned NULL AUTO_INCREMENT ,
title varchar( 255 ) NULL ,
`condition` text NULL ,
conditiontype enum( 'OR', 'AND' ) NULL DEFAULT 'OR',
showorder smallint( 5 ) unsigned NULL DEFAULT '0',
acpmode tinyint( 3 ) unsigned NULL DEFAULT '0',
PRIMARY KEY ( itemgroupid )
);
Avatar billede kris75 Mester
02. marts 2009 - 19:18 #7
Jeg er rimelig grøn på databaser ;-) Hvad ville du vælge istedet for condition?

Nu ser filen sådan ud:
CREATE TABLE bb1_acpmenuitemgroups (
    itemgroupid smallint(5) unsigned NULL auto_increment,
    title varchar(255) NULL,
    condition text NULL,
    conditiontype enum('OR','AND') NULL DEFAULT 'OR',
    showorder smallint(5) unsigned NULL DEFAULT '0',
    acpmode tinyint(3) unsigned NULL DEFAULT '0',
    PRIMARY KEY (itemgroupid)
);


Og jeg får følgende fejl:
SQL-forespørgsel:

CREATE TABLE bb1_acpmenuitemgroups(
itemgroupid smallint( 5 ) unsigned NULL AUTO_INCREMENT ,
title varchar( 255 ) NULL ,
condition text NULL ,
conditiontype enum( 'OR', 'AND' ) NULL DEFAULT 'OR',
showorder smallint( 5 ) unsigned NULL DEFAULT '0',
acpmode tinyint( 3 ) unsigned NULL DEFAULT '0',
PRIMARY KEY ( itemgroupid )
);

MySQL returnerede: Dokumentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'condition text NULL,
    conditiontype enum('OR','AND') NULL DEFAULT 'OR',
    showo' at line 4
Avatar billede nicklasb Nybegynder
02. marts 2009 - 19:41 #8
Du har stadig skrevet condition uden `-erne rundt om. Hvis ikke du sætter dem, bliver du ved at få samme fejl.

Prøv denne:

CREATE TABLE bb1_acpmenuitemgroups (
    itemgroupid smallint(5) unsigned NULL auto_increment,
    title varchar(255) NULL,
    `condition` text NULL,
    conditiontype enum('OR','AND') NULL DEFAULT 'OR',
    showorder smallint(5) unsigned NULL DEFAULT '0',
    acpmode tinyint(3) unsigned NULL DEFAULT '0',
    PRIMARY KEY (itemgroupid)
);

og post hvad den melder af fejl (hvis nogle).
Avatar billede kris75 Mester
02. marts 2009 - 20:00 #9
Så fik jeg `erne ind og der blev læst mere ind, men den laver stadig en fejl:
Fejl

SQL-forespørgsel:

CREATE TABLE bb1_acpmenuitems(
itemid smallint( 5 ) unsigned NULL AUTO_INCREMENT ,
itemgroupid smallint( 5 ) unsigned NULL DEFAULT '0',
link varchar( 255 ) NULL ,
languageitem varchar( 255 ) NULL ,
linkformat varchar( 20 ) NULL ,
condition varchar( 255 ) NULL ,
conditiontype enum( 'OR', 'AND' ) NULL DEFAULT 'OR',
showorder smallint( 5 ) unsigned NULL DEFAULT '0',
acpmode tinyint( 3 ) unsigned NULL DEFAULT '0',
PRIMARY KEY ( itemid )
);

MySQL returnerede: Dokumentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'condition varchar(255) NULL,
    conditiontype enum('OR','AND') NULL DEFAULT 'OR'' at line 7
Avatar billede nicklasb Nybegynder
02. marts 2009 - 21:09 #10
Prøv at læse fejlbeskeden og se din forespørgsel igen!

Fejlen har hver gang stået rimlig klar over "... check the manual that corresponds to your MySQL server version for the right syntax to use near".

Igen skyldes det "condition" og hvis du kontrollerer forespørgslen, har du igen et felt "condition" der mangler `-erne. Den forespørgsel skal (stadig) se ud som følger:

CREATE TABLE bb1_acpmenuitems(
itemid smallint( 5 ) unsigned NULL AUTO_INCREMENT ,
itemgroupid smallint( 5 ) unsigned NULL DEFAULT '0',
link varchar( 255 ) NULL ,
languageitem varchar( 255 ) NULL ,
linkformat varchar( 20 ) NULL ,
`condition` varchar( 255 ) NULL ,
conditiontype enum( 'OR', 'AND' ) NULL DEFAULT 'OR',
showorder smallint( 5 ) unsigned NULL DEFAULT '0',
acpmode tinyint( 3 ) unsigned NULL DEFAULT '0',
PRIMARY KEY ( itemid )
);
Avatar billede kris75 Mester
09. marts 2009 - 07:55 #11
Det hjalp at ændre alle "condition" ordene. Tak for hjælpen, send et svar og der er point på vej...
Avatar billede nicklasb Nybegynder
09. marts 2009 - 21:24 #12
Det har jeg allerede gjort ;) (#1)
Avatar billede kris75 Mester
10. marts 2009 - 07:37 #13
Sorry ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester