Kom ihåg mig?
Home Menu

Menu


Är MyISAM + latin1 standard?

 
Ämnesverktyg Visningsalternativ
Oläst 2008-03-02, 15:12 #1
wizzos avatar
wizzo wizzo är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2006
Inlägg: 424
wizzo wizzo är inte uppkopplad
Flitig postare
wizzos avatar
 
Reg.datum: Dec 2006
Inlägg: 424
Är MyISAM + latin1 standard? Eller borde jag ändra CHARSET=utf8, hur gör man det isåfall anger man bara den röda koden i sitt MySQL Query Browser script?

Citat:

mysql> SHOW CREATE TABLE webbshop.genre;
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| genre | CREATE TABLE `genre` (
`genre_id` smallint(5) unsigned NOT NULL auto_increment,
`beskrivning` varchar(30) NOT NULL,
PRIMARY KEY (`genre_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>
wizzo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-03-02, 19:17 #2
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
Om du ändrar till UTF8, så får du ändra anslutning, filer, alla teckenkodningar till UTF8.


latin1 är i princip standard i sverige.
hnn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-03-02, 20:39 #3
wizzos avatar
wizzo wizzo är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2006
Inlägg: 424
wizzo wizzo är inte uppkopplad
Flitig postare
wizzos avatar
 
Reg.datum: Dec 2006
Inlägg: 424
Alla mina html/css sidor använder och sparas i UTF8. Mina SQL script filer sparas också i UTF8 automatiskt i min texteditor.
Men vad menar du med att jag måste ändra anslutning? Syftar du på MySQL anslutningen i min <?php ... ?> kodsnutt.

Citat:

<?php
// Connecting, selecting database
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
or die('Could not connect: ' . mysql_error());

echo 'Connected successfully';
mysql_select_db('my_database') or die('Could not select database');

// Performing SQL query
$query = 'SELECT * FROM my_table';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

// Printing results in HTML
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";

// Free resultset
mysql_free_result($result);

// Closing connection
mysql_close($link);
?>
wizzo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-03-02, 20:43 #4
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
Typ:

Citat:
$this->query('SET NAMES "UTF8"');
$this->query('SET CHARACTER SET UTF8');
hnn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-03-02, 20:48 #5
wizzos avatar
wizzo wizzo är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2006
Inlägg: 424
wizzo wizzo är inte uppkopplad
Flitig postare
wizzos avatar
 
Reg.datum: Dec 2006
Inlägg: 424
Ojdå lite för avancerad programmeringssyntax för min smak. Är rädd för att jag inte kan kontrollera och testa den här typen av kodning ännu. Tack för tipset iallafall.
wizzo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-03-02, 21:02 #6
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Citat:
Originally posted by wizzo@Mar 2 2008, 21:48
Ojdå lite för avancerad programmeringssyntax för min smak. Är rädd för att jag inte kan kontrollera och testa den här typen av kodning ännu. Tack för tipset iallafall.
Teckenkodningen i PHP är standard iso-8859-1, därför är latin1 standard i mysql kopplingen från PHP.
Du kan använda vilken teckenkodning som helst när du sparar data i php, är htmlsidan i latin1, och du sparar text i utf8 så kommer tecken att se lite skum ut i mysql, men den kommer att visas rätt på sidan.

Det hnn menar är att den första frågan till mysql efter anslutningen och val av databas skall vara:
Kod:
mysql_query("SET NAMES utf8;");
Vilket kommer att ställa om php's teckenkodning i anslutningen till utf8 (MySQL 4.0 eller senare)
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-03-02, 23:11 #7
wizzos avatar
wizzo wizzo är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2006
Inlägg: 424
wizzo wizzo är inte uppkopplad
Flitig postare
wizzos avatar
 
Reg.datum: Dec 2006
Inlägg: 424
Jag blir inte mycket klokare på det hela efter att ha läst en del om Characters sets och Collations på MySQLs hemsida. Bl.a. det här.
http://dev.mysql.com/doc/refman/5.0/en/cha...t-database.html

När vet man när man ska välja ett specifikt Character set och Collations istället för default som kommer med installationen?
Om jag kör med nedanstående default värden kommer jag få problem med min databas ifall jag nån gång i framtiden ska flytta över databasen till ett webbhotell som inte har sina servrar och kontor i Sverige?
Kod:
character_set_database latin1
collation_database latin1_swedish_ci
Vad för Character set + Collation bör man köra med för att göra sin databas internationell? Dvs. den ska kunna flyttas mellan olika länders webbhotell utan att det blir problem med datat i databaserna samt databasens skelett.
wizzo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-03-03, 11:19 #8
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
UTF-8 bör absolut användas som standard åtminstone i alla nya projekt.
Varför: Det är inte svårare, bara man ställer in rätt från början. Det är framtidssäkert, eftersom det fungerar nu och kommer att fungera i alla webbläsare. Och det är synkroniserat med officiell ISO-standard för teckenkodningar ISO/IEC 10646
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-03-03, 11:27 #9
Lumax Lumax är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 610
Lumax Lumax är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 610
Den största omedelbara fördelen med att använda UTF-8 är att du t.ex. slipper använda &auml; och kan köra med åäö som vanligt. Däremot så använder du helt andra strängjämförelsefunktioner i PHP (mb_string) vilket gör att du inte helt lätt bara kan gå över till UTF-8. Men vid nya projekt är det värt att överväga.
Lumax är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-03-09, 14:11 #10
wizzos avatar
wizzo wizzo är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2006
Inlägg: 424
wizzo wizzo är inte uppkopplad
Flitig postare
wizzos avatar
 
Reg.datum: Dec 2006
Inlägg: 424
Ny fråga.

1.) Språk drop down lista.
När man loggar in i phpmyadmin då får man frågan "Språk" med en drop down lista. I listan finns UTF8 i alla möjliga språk om jag idag loggar in med "Swedish UTF8" och lägger in lite tabeller och data. Sedan om en vecka då råkar jag logga in med "Arabic UTF8" och lägger in lite tabeller och data. Får jag en korrupt databas med en massa konflikter i slutändan?

2.) Olika kollationering i en tabell eller mellan tabeller.
Som rubriken säger vad för konsekvenser råkar man ut för då om man har en stor databas med olika kollationering mellan tabeller?

3.) Vad är skillnaden mellan dessa kollationeringar gör dem inte samma sak?
utf8_bin Unicode (flerspråkig), Binär
utf8_general_ci Unicode (flerspråkig), skiftlägesokänsligt
utf8_unicode_ci Unicode (flerspråkig), skiftlägesokänsligt
utf8_swedish_ci Svensk, skiftlägesokänsligt

4.) Webhosten har skapat dessa kollationeringar.
Behöver jag synkronisera alla deras förinstallerade databaser så att dem antingen lyder under "UFT8_general_ci" respektive "LATIN1_swedish_ci" för att saker och ting ska stämma överens med mina egenskapade UTF8 databaser/tabeller?
Kod:
information_schema  utf8_general_ci   
mysql             latin1_swedish_ci
wizzo är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 17:15.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017