Ukládání emoticonů do databáze
- Ondris
- Člen | 37
Ahoj,
narazil jsem na chybu s ukládáním tohoto emoticonu 😊. Prošel jsem jak to řešili ostatní a nyní jsem ve stavu, kdy mám nastavenou databázi, tabulku i sloupec na utf8mb4_general_ci (utf8mb4_czech_ci se chová stejně) a uložení přes phpmyadmin funguje, takže předpokládám, že problém bude s nastavením znakové sady.
Zkouším tohle (nastavení sady jen v dsn, nebo jen v options se chová stejně):
default:
dsn: "mysql:host=localhost;port=3306;dbname=junodb;charset=utf8mb4_czech_ci"
user: root
password:
options:
charset: "utf8mb4_czech_ci"
Než jsem upravil nastavení v databázi tak byla chyba:
SQLSTATE[HY000]: General error: 1366 Incorrect string value:
‚\xF0\x9F\x98\x8A‘ for column ‚name‘ at row 1
Po úpravě nastavení databáze se mi z webu uloží otazníky místo emoticonu a v phpadmin vše funguje.
Při úpravě configu:
SQLSTATE[HY000] [2019] Unknown character set
- Marek Znojil
- Člen | 90
Ahoj,
charset v dsn změň na utf8mb4.
Editoval Marek Znojil (7. 9. 2020 10:46)
- tom
- Člen | 171
Snazim se o podobne ukladani emotikonu. Konfiguraci databaze mam …
parameters:
database:
driver: mysqli
host: ***
user: ***
password: ***
database: ***
charset: utf8mb4
profiler: true
options:
lazy: yes
Porovnavani na databazi, tabulce a danem sloupci jsem nastavil na utf8mb4_czech_ci
Ale pri insertu stale dostavam chybu
Incorrect string value: '\xF0\x9F\x90\xA8' for column
A kdyz ten emotikon vlozim do databaze pres Adminer, tak je to ok, ale do webu se pak naste otaznik
Poradite prosim kde hledat chybu? Diky
Editoval tom (24. 9. 2023 20:44)
- nightfish
- Člen | 518
tom napsal(a):
parameters: database: driver: mysqli host: *** user: *** password: *** database: *** charset: utf8mb4 profiler: true options: lazy: yes
@tom charset
má být vnořen pod options
,
nikoliv pod database
Viz dokumentaci.
- tom
- Člen | 171
nightfish napsal(a):
tom napsal(a):
parameters: database: driver: mysqli host: *** user: *** password: *** database: *** charset: utf8mb4 profiler: true options: lazy: yes
@tom
charset
má být vnořen podoptions
, nikoliv poddatabase
Viz dokumentaci.
@nightfish jojo ale i tak to dopadne stejne
- tom
- Člen | 171
tom napsal(a):
nightfish napsal(a):
tom napsal(a):
parameters: database: driver: mysqli host: *** user: *** password: *** database: *** charset: utf8mb4 profiler: true options: lazy: yes
@tom
charset
má být vnořen podoptions
, nikoliv poddatabase
Viz dokumentaci.
@nightfish jojo ale i tak to dopadne stejne
Ta dokumentace je pro Nette Database nevim jestli pro Dibi je to jine …