Syntaxfehler in mySQL ... was ist zu tun?

hanebu

Well-known member
4 Mai 2006
305
7
Hallo,

ich will ein script testen und habe dafür eine datei db.sql "in eine DB" zu laden. Wie stelle ich dass den an?

2. Schritt:
Laden Sie die db.sql in Ihre MySQL Datenbank!


Das ist erledigt. Hab die Datei geladen, und dann kommt:



SQL-Befehl :

CREATE TABLE `login_pages` (

`id` int( 5 ) unsigned NOT NULL AUTO_INCREMENT ,
`head` varchar( 250 ) collate latin1_general_ci NOT NULL default '',
`text` longtextcollate latin1_general_ci NOT NULL ,
`order` int( 5 ) NOT NULL default '0',
`status` int( 1 ) NOT NULL ,
`pub` int( 1 ) NOT NULL ,
PRIMARY KEY ( `id` )
)ENGINE = MYISAM DEFAULT CHARSET = latin1 COLLATE = latin1_general_ci PACK_KEYS = 0 AUTO_INCREMENT = 1

MySQL meldet:


#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 'collate latin1_general_ci NOT NULL default '',
`text` longte
[Dokumentation] · [Zurück]

EDIT:
Bitte ab posting #4 weiterschreiben, das andere war zum vorigen thema..
 
Zuletzt bearbeitet:
Danke, in meinem PHPmy Admin steht nur EXPORTIEREN..., oder find ich das net?

edit:
Danke..., habs unter SQL gefunden. :p

Super. Danke ;)
 
Entweder musst Du Deine MySQL-Version auf dem Server, wo Du den Dump einspielen willst, upgraden oder auf dem Server, von wo der Dump kommt, downgraden oder aus dem Dump alle Stellen mit collate rauslöschen.

Evtl bringt's auch was, wenn DU den Dump nicht mit PhpMyAdmin erstellst, sondern über den MySQL-Commandline-Client. Vielleicht haut der Dir die collate-Anweisungen da nicht mit rein.
 
ja nach mysql version:

`text` longtext collate latin1_general_ci NOT NULL ,
oder
`text` text collate latin1_general_ci NOT NULL ,

da fehlte ein leerzeichen ;)
 
Hm..., danke euch beiden, ich hab da zu wenig Ahnung davon. Ich will auch nicht an mySQL rumoperieren, weil weitere 3 DBs auf dem Space sind, und die ja sicher auch betroffen sind, wenn ich die Version ändere.

Ich bin fast den ganzen Tag on, wenn mir jemand helfen könnte? Yahoo Messi ist immer an :)

Danke schön.
 
PHP:
CREATE TABLE `login_pages` (

`id` int( 5 ) unsigned NOT NULL AUTO_INCREMENT ,
`head` varchar( 250 ) NOT NULL default '',
`text` longtext NOT NULL ,
`order` int( 5 ) NOT NULL default '0',
`status` int( 1 ) NOT NULL ,
`pub` int( 1 ) NOT NULL ,
PRIMARY KEY ( `id` )
);

Probiers mal so :)
 
Also diesen code als Datei speichern, und so dann in die DB laden? Und kommt dann das Script mit der DB klar?

und was ist mit den beiden zeilen, die nicht im neuen code sind:

)ENGINE = MYISAM DEFAULT CHARSET = latin1 COLLATE = latin1_general_ci PACK_KEYS = 0 AUTO_INCREMENT = 1
 
das is des auto_increment, das steht schon bei 1, also brauchen wir das nidde.

Bei "SQL" in das textfeld eintragen oder ebend in die *sql speichern und die dann "einladen".
 
Hat sich erledigt. So ein schwules Script.... LOL.

Muss mir was anderes suchen.