jak vložím smajlíky do mysql (????)
<p>jsem na mysql 5.5.21 a pokouším se vložit smajlíkovou postavu '\ xf0\x9f\x98\x8a'. ale pro můj život nemůžu přijít na to, jak to udělat.</p><p>podle různých fór, která jsem četl, je to možné. ale kdykoli to zkusím, data se zkrátí.</p><pre><code>mysql&gt; insert into hour ( `title`, `content`, `guid` , `published` , `lang` , `type` , `indegree` , `lon` , `lat` , `state` , `country` , `hour` ) values ( "title" , "content ???? content" , "guid" , 1, 1, "weblog", 1, 1, 1, "state" , "country" , 1 ); query ok, 1 row affected, 2 warnings (0.00 sec) mysql&gt; show warnings; ++++ | level | code | message | ++++ | warning | 1366 | incorrect string value: '\xf0\x9f\x98\x8a ...' for column 'content' at row 1 | | warning | 1265 | data truncated for column 'published' at row 1 | ++++ 2 rows in set (0.00 sec) mysql&gt; select last\_insert\_id(); ++ | last\_insert\_id() | ++ | 687302 | ++ 1 row in set (0.00 sec) mysql&gt; select * from hour where id = 687302; ++++++ | id | title | content | guid | published | ++++++ | 687302 | title | content | guid | 0000-00-00 00:00:00 | ++++++ 1 row in set (0.00 sec) </code></pre><p>ale moje definice stolu je následující.</p><pre><code>create table `hour` ( `id` bigint(20) not null auto\_increment, `title` varchar(255) character set utf8 not null, `content` text character set utf8 not null, `guid` varchar(255) character set utf8 not null, `published` timestamp not null default current\_timestamp on update current\_timestamp, `lang` tinyint(3) unsigned not null, `type` enum('weblog','microblog') character set utf8 default null, `indegree` int(4) unsigned not null, `lon` float default null, `lat` float default null, `state` varchar(50) character set utf8 default '', `country` varchar(50) character set utf8 default '', `hour` int(2) default null, `gender` enum('male','female') character set utf8 default null, `time\_zone` varchar(45) character set utf8 default null, primary key (`id`) ) engine=memory auto\_increment=687560 default charset=utf8mb4 key\_block\_size=288 </code></pre><p>je vidět, že používám charset = utf8mb4. určitě to opraví problémy spojené s používáním vícebytových znaků?</p><p>dobře, tak jsem si nevšiml:</p><pre><code> `content` text character set utf8 not null, </code></pre><p>opravil jsem to hned, ale stále mám funky výsledky.</p><pre><code>create table `hourtmp` ( `id` bigint(20) not null auto\_increment, `title` varchar(255) character set utf8 not null, `content` text not null, `guid` varchar(255) character set utf8 not null, `published` timestamp not null default current\_timestamp on update current\_timestamp, `lang` tinyint(3) unsigned not null, `type` enum('weblog','microblog') character set utf8 default null, `indegree` int(4) unsigned not null, `lon` float default null, `lat` float default null, `state` varchar(50) character set utf8 default '', `country` varchar(50) character set utf8 default '', `hour` int(2) default null, `gender` enum('male','female') character set utf8 default null, `time\_zone` varchar(45) character set utf8 default null, primary key (`id`) ) engine=memory auto\_increment=687563 default charset=utf8mb4 key\_block\_size=288 | mysql&gt; insert into hourtmp ( `title`, `content`, `guid` , `published` , `lang` , `type` , `indegree` , `lon` , `lat` , `state` , `country` , `hour` ) values ( "title" , "content ???? content" , "guid" , 1, 1, "weblog", 1, 1, 1, "state" , "country" , 1 ); query ok, 1 row affected, 2 warnings (0.00 sec) mysql&gt; show warnings; | level | code | message | | warning | 1366 | incorrect string value: '\xf0\x9f\x98\x8a ...' for column 'content' at row 1 | | warning | 1265 | data truncated for column 'published' at row 1 | 2 rows in set (0.00 sec) mysql&gt; select * from hourtmp; ++++ | id | title | content | ++++ | 687560 | title | content ???? content | | 687561 | title | content ???? content | ++++ </code></pre>
<p>nedávno jsem napsal <a href="http://mathiasbynens.be/notes/mysql-utf8mb4#utf8-to-utf8mb4"><strong> podrobného průvodce, jak přepnout z mysql's <code>utf8</code> to <code>utf8mb4</code> </strong></a> . pokud tam budete postupovat, vše by mělo fungovat správně. zde jsou přímé odkazy na každý jednotlivý krok procesu:</p><ul> <li> <a href="http://mathiasbynens.be/notes/mysql-utf8mb4#backup">krok 1: vytvoření zálohy</a> </li> <li> <a href="http://mathiasbynens.be/notes/mysql-utf8mb4#upgrade">krok 2: upgradujte server mysql</a> </li> <li> <a href="http://mathiasbynens.be/notes/mysql-utf8mb4#databases-tables-columns">krok 3: upravit databáze, tabulky a sloupce</a> </li> <li> <a href="http://mathiasbynens.be/notes/mysql-utf8mb4#column-index-length">krok 4: zkontrolujte maximální délku sloupců a indexových klíčů</a> </li> <li> <a href="http://mathiasbynens.be/notes/mysql-utf8mb4#character-sets">krok 5: upravit připojení, sady znaků a klienta</a> </li> <li> <a href="http://mathiasbynens.be/notes/mysql-utf8mb4#repair-optimize">krok 6: opravit a optimalizovat všechny tabulky</a> </li> </ul><p>mám podezření, že váš problém lze vyřešit následujícím krokem 5. doufám, že to pomůže!</p>
No tohle uděláš jen do přihlašovacího scriptu pošlu ti svůj, pokus se ho upravit na svůj případ Je to část mojeho login scriptu, funguje samostatně jen to stačí uložit v texťáku jako něco.vbs a nastavit si parametry serveru atd... problém je akorát pokud je někdo členem dvou a více skupin to potom musíš rozhodit písmena jednotek nějak rozumně ne stejně!! Dole ve scriptu neznamená x: písmeno jednotky X ale dosaď si jakou potřebuješ! Skupin si můžeš nadefinovat kolik chceš já jsem ti udělal jen vzor pro ADMIN a USER...''*************************************************** *********************** ' PŘIPOJENÍ DISKŮ PODLE SKUPIN ''******************************************************* ******************* Function isMemberOf(ByVal group) Dim user, found, temp found = False Set user = GetObject("WinNT://" & CreateObject("WScript.Network").UserDomain & "/" & CreateObject("WScript.Network").UserName & ",user") For Each temp In user.Groups If UCase(temp.Name) = UCase(group) Then found = True Exit For End If Next isMemberOf = found End Function ''*********************************************** *************************** ' NASTAVENÍ PROMĚNÝCH ''******************************************************* ******************* Dim network, fso Set network = CreateObject("WScript.Network") Set fso = CreateObject("Scripting.FileSystemObject") Set WshShell = CreateObject("WScript.Shell") Dim Find, ReplaceWith, FileContents, dFileContents set wshshell = createobject("Wscript.Shell") set mojesit = Wscript.CreateObject("Wscript.Network") computername = mojesit.ComputerName set osvcRemote = GetObject("winmgmts:\\localhost\root\cimv2") set oOSInfo = osvcRemote.InstancesOf("Win32\_OperatingSystem") ''*********************************************** *************************** ' NASTAVENÍ ZKRÁCENÉHO JMÉNA SKUPINY ''******************************************************* ******************* Const ADMIN = "SL\_blabla\_ADM" Const USER = "SL\_blabla\_USER"''*******************************… ******************************************* ' ZDE SE PRIPOJI DISK, POKUD JE CLENEM SKUPINY ''******************************************************* ******************* Set WshNetwork = WScript.CreateObject("WScript.Network") Set oDrives = WshNetwork.EnumNetworkDrives Set oPrinters = WshNetwork.EnumPrinterConnections ''*********************************************** *************************** ' Připojení disků pro skupinu ADMIN ''******************************************************* ******************* If isMemberOf(ADMIN) Then Network.MapNetworkDrive "x:", "\\server\složka" end if ''*************************************************** *********************** ' Připojení disků pro skupinu USER''*************************************************** *********************** If isMemberOf(USER) Then Network.MapNetworkDrive "x:", "\\server\složka" end if ''*********************************************** *************************** ' KONEC ČÁSTI SCRIPTU NA PŘIPOJENÍ DISKŮ PODLE SKUPIN ''******************************************************* *******************  [Ukázat celý příspěvek](javascript:void(0)) Nač dávať MIDI do wav, preboha? ![](/Client.Images/smileys/5.gif) Odkaz je nutné celý zkopírovat a vložit do adresní řádky, protože za vykřičníkem přestává být aktivní. ![](/Client.Images/smileys/8.gif) To není chyba.Třeba kroužek napíšete "Pravý CTRL + 5"... když zmáčknete tu 5 dvakrát, napíše to kroužek ... zkuste to jednou a pak dejte klávesu U .. máte Ů. Čeká to totiž na další písmenko. Jak se to dá vypnout jsem popravdě nikdy nehledal ![](/Client.Images/smileys/3.gif) Můžeš si už laskavě odpustit toho jednoho a toho samýho smajlíka na konci tvé "rady"? Proboha, co to je? Delší už to být nemůže? Co chceš nastavovat? <p>pravděpodobně se dostáváte do radostí mysql myisam engine ...</p><p>v rámci mysql (nebo phpmyadmin) použijte příkazy repair table xyz znovu, opakovaně, na každé z vašich tabulek (nebo spíše tabulek souvisejících s vašimi podmínkami, protože to jsou ty, které znějí zkaženě), aby se zjistilo, zda to nic nevyřeší.</p><p>pokud selžou, existuje několik zdokumentovaných řešení:</p><p> <a href="http://www.google.com/search?q=recover+a+corrupt+mysql+database">http://www.google.com/search?q=recover+a+corrupt+mysql+database</a> </p><p>jakmile jsou věci obnoveny, spusťte příkazy optimalizovat tabulku xyz na každé tabulce a poté změňte motor databáze a každou tabulku, aby byla použita innodb. innodb poněkud neuspořádá katalog (zejména pokud upustíte databázi nebo velké tabulky), ale - pokud je kompatibilní s acid - je to o dost méně náchylné k chybám než myisam.</p> [`IGNORE_SPACE`](http://dev.mysql.com/doc/refman/5.1/en/server-sql-mode.html#sqlmode_ignore_space)Režim umožňuje mezery mezi názvy funkcí a následující závorkách. Pokud je to povoleno, všechny názvy funkcí se stal vyhrazená slova, protože to stane se nemožné pro MySQL, zda voláte funkce nebo deklarovat (s použitím) identifikátor.


Proto, pokud je to povoleno, vaše `CREATE TABLE`selže a následující:



```
SELECT MD5 (some_column) FROM some_table

```

bude pracovat. Pokud `IGNORE_SPACE`je vypnuta, opak stane ( `CREATE TABLE`bude fungovat a především `SELECT`nebude, protože tam je mezera mezi názvu funkce a závorce). Na tohle ti (doufám) nikdo nebude odpovídat. Podobné výkřiky do tmy se tady docela rychle mažou. Zatím si vyměň klávesnici mobilu - vykřičníky a otazníky ti píše třikrát. To neudělal command block. ![](/Client.Images/smileys/1.gif) přepni to v nastavení zapnul jsis předčítaní.