Kom ihåg mig?
Home Menu

Menu


Mysql INSERT: data med ÅÄÖ blir tomma

 
Ämnesverktyg Visningsalternativ
Oläst 2008-11-28, 13:04 #11
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
Ok. Nu har jag provat mysql_query('set names "latin1"') precis i början på mitt script.

mysql_client_encoding() returnerar "latin1".

Men trots detta blir resultatet detsamma som jag beskrev i första posten.

Är det något mer jag kan prova?

Edit: jag har dubbelkollat att datan är i iso-8859-1. Jag är 100% säker.
radioaktivitet är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-11-28, 13:05 #12
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:
Ursprungligen postat av Magnus_A
Citat:
Ursprungligen postat av Jonas
MySQL kan lagra utf8 i latin1 fält, har gjort det och det fungerade bra.
Enda som sker är att specialtecken (ÅÄÖ mfl) blir 2st konstiga tecken istället för 1.
Varför ska du ha två konstiga tecken istället för ett riktigt?
Jag skrev detta eftersom alla i tråden påpekar att det är fel teckenuppsättning, eftersom mysql klarar av att skriva utf8 i latin1 så är det nog inte det som är felet.
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-11-28, 13:08 #13
dotvoid dotvoid är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 199
dotvoid dotvoid är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 199
Två konstiga tecken... jo UTF-8 använder ju två bytes för att lagra tecken som inte ingår i basen av iso-8859-1.

Finns bra beskrivningar av utf-8, iso-8859-1 och latin1 samt deras skillnader och förklaring på namngivning etc på wikipedia t ex. Kan vara bra att läsa på. Som programmerare eller utvecklare bör man ha lite koll på det.
dotvoid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-11-28, 13:14 #14
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
Åter till topic:

Jag har nu provat att exekvera exakt samma php-kod, fast denna gång via webbläsaren. Allting fungerade perfekt. All data hamnade i tabellen precis som jag vill.

Det innebär att mitt problem har någonting med cli att göra. Frågan är bara vad...
radioaktivitet är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-11-28, 13:16 #15
dotvoid dotvoid är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 199
dotvoid dotvoid är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 199
Tja - någonstans är det högst troligen galet med teckenuppsättningen. PHP i sig har ingen uppfattning om teckenuppsättning. Allt är strängar av bytes. Däremot kan det bli galet om man blandar teckenuppsättningar i data och parametrar till funktioner för strängjämförelser, strängersättning och annat.

Tänk på att om du sitter i ett någolunda modernt linux så används och förutsätts att textfiler, output mm är i utf-8 - inte iso-8859-1. Så om du kör scriptet och printar ut i terminalen och allt ser fint ut så kanske det är utf-8? Se till att batchjobbet genererar en textfil också. Kontrollera den sedan med file.
dotvoid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-11-28, 13:19 #16
dotvoid dotvoid är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 199
dotvoid dotvoid är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 199
Det ovan innebär också att om du sitter i mysql-klienten och kikar i databasen kommer strängar med åäö i iso-8859-1 ersättas med ? som standard.
dotvoid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-11-28, 13:24 #17
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
Citat:
Originally posted by dotvoid@Nov 28 2008, 14:16
Tänk på att om du sitter i ett någolunda modernt linux så används och förutsätts att textfiler, output mm är i utf-8 - inte iso-8859-1. Så om du kör scriptet och printar ut i terminalen och allt ser fint ut så kanske det är utf-8? Se till att batchjobbet genererar en textfil också. Kontrollera den sedan med file.
ut.txt: ISO-8859 English text, with very long lines, with CRLF, LF line terminators
radioaktivitet är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-11-28, 16:55 #18
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
Nu har vi analyserat teckenuppsättningen fram och bak, men det har inte löst problemet. Som var att det inte skrevs något i databasen. Normalt ska det skrivas oavsett vilka tecken som strängen innehåller, och inget felmeddelande fanns det heller. Däremot fungerade det bra via terminal, vilket gör mig förbryllad. Här ligger nåt begravet som inte stämmer.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-11-29, 10:06 #19
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
Citat:
Originally posted by Magnus_A@Nov 28 2008, 17:55
Nu har vi analyserat teckenuppsättningen fram och bak, men det har inte löst problemet. Som var att det inte skrevs något i databasen. Normalt ska det skrivas oavsett vilka tecken som strängen innehåller, och inget felmeddelande fanns det heller. Däremot fungerade det bra via terminal, vilket gör mig förbryllad. Här ligger nåt begravet som inte stämmer.
Allting som skrivs till databasen som innehåller Å,Ä och Ö blir istället tom sträng.

Det fungerar bra via windows klient och om man kör samma php-script på webbservern. Felet uppkommer endast om man kör det via kommandoraden.

Jag har kört php_info på både webbservern och från kommandoraden. Allting som har att göra med teckenuppsättningar ser exakt likadant ut.

Jag har kört frågan "SHOW VARIABLES LIKE 'c%'" från både webbservern och kommandoraden. Allt ser likadant ut.

Jag är 100% säker på att sql-frågan som innehåller å, ä och ö tecken är i iso-8859-1. Tabellen är satt till latin1 och mysql_client_encoding() returnerar "latin1" både från kommandoraden och från webbservern.
radioaktivitet är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-12-04, 14:01 #20
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
Jag glömde skriva in och berätta. I måndags när jag provade mitt script så fungerade det. Jag har gjorde inte några förändringar i det - så det är mysko att det bara började fungera hux flux. Men så är det. Måste vara ett tillfälligt fel. Det har fungerat sedan dess...

Tack för hjälpen allesammans!
radioaktivitet ä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 09:01.

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