Avatar billede moddi100 Seniormester
11. juli 2009 - 12:52 Der er 10 kommentarer og
1 løsning

[Default] Charset fejler

Hej,

Jeg har lavet et script (i PHP), der skal bruges til at lave en backup af hele mysql-databasen og senere gendanne databasen. Tabellernes struktur henter jeg med

SHOW CREATE TABLE min_tabel

Det underlige er bare at det så ikke virker når jeg vil indsætte det igen.

SHOW CREATE TABLE min_tabel:

CREATE TABLE `jos_banner` (
  `bid` int(11) NOT NULL auto_increment,
  `cid` int(11) NOT NULL default '0',
  `type` varchar(90) NOT NULL default 'banner',
  `name` text NOT NULL,
  `alias` varchar(255) NOT NULL default '',
  `imptotal` int(11) NOT NULL default '0',
  `impmade` int(11) NOT NULL default '0',
  `clicks` int(11) NOT NULL default '0',
  `imageurl` varchar(100) NOT NULL default '',
  `clickurl` varchar(200) NOT NULL default '',
  `date` datetime default NULL,
  `showBanner` tinyint(1) NOT NULL default '0',
  `checked_out` tinyint(1) NOT NULL default '0',
  `checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
  `editor` varchar(150) default NULL,
  `custombannercode` text,
  `catid` int(10) unsigned NOT NULL default '0',
  `description` text NOT NULL,
  `sticky` tinyint(1) unsigned NOT NULL default '0',
  `ordering` int(11) NOT NULL default '0',
  `publish_up` datetime NOT NULL default '0000-00-00 00:00:00',
  `publish_down` datetime NOT NULL default '0000-00-00 00:00:00',
  `tags` text NOT NULL,
  `params` text NOT NULL,
  PRIMARY KEY  (`bid`),
  KEY `viewbanner` (`showBanner`),
  KEY `idx_banner_catid` (`catid`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8


Hvis jeg smider det ind i en query (PHP's mysql_query) giver det følgende fejl:

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 ' DEFAULT CHARSET=utf8' at line 29


Hvad er fejlen i min query?
Avatar billede moddi100 Seniormester
11. juli 2009 - 13:03 #1
Eller måske nærmere, hvad skal ændres for at den bevarer utf8 som standard charset?
Avatar billede arne_v Ekspert
11. juli 2009 - 13:29 #2
Er det samme MySQL server du forsoeger at restore paa ?

Fejlen kunne ligne den man faar ved eksport paa en nyere MySQL server og import paa en oldgammel MySQL server.
Avatar billede moddi100 Seniormester
11. juli 2009 - 19:20 #3
Det har du ret i. Eksport fra følgende server:

5.0.32-Debian_7etch10-log

til:

4.0.26-standard


Hvordan kan jeg opnå samme effekt som DEFAULT CHARSET giver?
Avatar billede arne_v Ekspert
13. juli 2009 - 15:29 #4
Med saa gammel en MySQL skal du nok bare satse paa at have import filen i det rigtige char set og saa importere.
Avatar billede moddi100 Seniormester
13. juli 2009 - 23:02 #5
det har jeg så gjort nu ved hjælp af php's funktion utf8_encode(). Jeg har dog det problem at det ikke vises korrekt når indholdet udskrives.

Hvis jeg tager et kig i databasen via phpMyAdmin vises tegnene korrekt. Når jeg udskriver dem (via Joomla!) vises det ikke korrekt. Filerne/Databasen er præcis de samme.

Er det noget database relateret eller skal fejlen findes i joomla?
Avatar billede arne_v Ekspert
14. juli 2009 - 03:49 #6
Jeg kan ikke lige se hvad utf8_encode kan gøre. Jeg ville gøre det med gem som i en editor.

Start med at checke hvilket tegnsæt Joomla og PHPMyAdmin fortæller browseren at siden er i.
Avatar billede moddi100 Seniormester
14. juli 2009 - 10:10 #7
Da jeg ikke har adgang på phpMyAdmin på eksport serveren, har jeg lavet et script til at hente indholdet af databasen og gemme det i txt-filer. Vil du så have mig til at åbne disse filer og sige gem som?

Joomla kører med utf-8 som charset. Når jeg nu bruger mysql_query() til at downloade og uploade indholdet, er phpMyAdmin's charset vel ikke relevant?
Avatar billede arne_v Ekspert
15. juli 2009 - 03:14 #8
Du skal ihvertfald sikre dig at de filer faktisk er i UTF-8 inden du loader dem ind.
Avatar billede moddi100 Seniormester
13. april 2011 - 21:38 #9
Fandt ud af selv at rette data i sidste ende. Der var trods alt ikke tale om den største database. Ønsker du point?
Avatar billede arne_v Ekspert
14. april 2011 - 03:48 #10
nej
Avatar billede moddi100 Seniormester
14. april 2011 - 10:44 #11
Takker for hjælpen så
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