Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Søg-og-erstat specialtegn

1 view
Skip to first unread message

Kurt Hansen

unread,
May 29, 2016, 12:02:35 AM5/29/16
to
I en webshop har jeg en tabel der hedder »products_description«. I denne
tabel er der et felt der hedder »products_description«.

Indholdet (som er HTML) er genereret med et script i Filemaker Pro.

Mit problem er at webshoppens database er blevet fucked up af ukendt
årsag. Se dette skræmmeeksempel:
http://danacordbutik.dk/product_info.php?products_id=28233

Problemet er formentlig opstået for flere uger siden uden at jeg lige
har opdaget det. Derfor nytter det ikke at indlæse en gammel backup, da
en del poster er redigeret i mellemtiden og da der er oprettet mange nye
varer siden da.

I Filemaker vil jeg kunne udtrække en fil med felterne »products_id« og
»products_description« i forskellige formater (kommasepareret, Excel
m.fl., men ikke SQL). Fint nok, men hvordan kører jeg en opdatering af
det pågældende felt i webshoppens database?

Er det så simpelt som:
UPDATE products_description
SET products_description = 'Feltets lange HTML-tekst'
WHERE products_id = '00000';
--
Venlig hilsen
Kurt Hansen

Kurt Hansen

unread,
May 29, 2016, 12:19:02 AM5/29/16
to
Den 29/05/2016 kl. 06.02 skrev Kurt Hansen:
>
> Er det så simpelt som:
> UPDATE products_description
> SET products_description = 'Feltets lange HTML-tekst'
> WHERE products_id = '00000';

Det er det åbenbart, så nu kør' jeg med klatten. Tak for opmærksomheden :-)

Kurt Hansen

unread,
May 29, 2016, 1:57:43 AM5/29/16
to
Den 29/05/2016 kl. 06.19 skrev Kurt Hansen:
> Den 29/05/2016 kl. 06.02 skrev Kurt Hansen:
>>
>> Er det så simpelt som:
>> UPDATE products_description
>> SET products_description = 'Feltets lange HTML-tekst'
>> WHERE products_id = '00000';
>
> Det er det åbenbart, så nu kør' jeg med klatten. Tak for opmærksomheden :-)

Njarh, det gik ikke helt glat. Udførelsen stopper med fejl i alle de
tekstfelter der indeholder '
Desværre er der også forekomster med to apostroffer ''
Hvordan slipper jeg om det?

Jan Hansen

unread,
May 29, 2016, 7:15:20 AM5/29/16
to
Kurt Hansen skrev Sun, 29 May 2016 07:57:43 +0200:

> Udførelsen stopper med fejl i alle de
> tekstfelter der indeholder '
> Desværre er der også forekomster med to apostroffer ''
> Hvordan slipper jeg om det?

Det skal nok bare pakkes ind i gåseøjne, i ugens phpmyadmin-version
virker dette:
UPDATE tabel SET felt1 = "tes't" where felt2=123

Det virker også den anden vej
UPDATE tabel SET felt1 = 'tes"t' WHERE felt2=123

Er der både ' og " i strengen skal der en \ foran
UPDATE tabel SET felt1 = "te\"s't" WHERE felt2=123




--
mvh Jan.
Help Microsoft stamp out piracy. Give
Linux to a friend today!

Arne Vajhøj

unread,
May 29, 2016, 8:36:28 PM5/29/16
to
On 5/29/2016 7:15 AM, Jan Hansen wrote:
> Kurt Hansen skrev Sun, 29 May 2016 07:57:43 +0200:
>> Udførelsen stopper med fejl i alle de
>> tekstfelter der indeholder '
>> Desværre er der også forekomster med to apostroffer ''
>> Hvordan slipper jeg om det?
>
> Det skal nok bare pakkes ind i gåseøjne, i ugens phpmyadmin-version
> virker dette:
> UPDATE tabel SET felt1 = "tes't" where felt2=123
>
> Det virker også den anden vej
> UPDATE tabel SET felt1 = 'tes"t' WHERE felt2=123
>
> Er der både ' og " i strengen skal der en \ foran
> UPDATE tabel SET felt1 = "te\"s't" WHERE felt2=123

Jeg ville nok bruge '' for streng og doble ' i streng indhold.

UPDATE tabel SET felt1 = 'tes''t' WHERE felt2=123

Det virker i MySQL uanset hvordan ANSI_QUOTES og NO_BACKSLASH_ESCAPES
er sat. Og det virker i andre databaser end MySQL.

Sikkert valg.

Arne

Kurt Hansen

unread,
May 29, 2016, 11:24:53 PM5/29/16
to
Den 30/05/2016 kl. 02.36 skrev Arne Vajhøj:
> On 5/29/2016 7:15 AM, Jan Hansen wrote:
>> Kurt Hansen skrev Sun, 29 May 2016 07:57:43 +0200:
>>> Udførelsen stopper med fejl i alle de
>>> tekstfelter der indeholder '
>>> Desværre er der også forekomster med to apostroffer ''
>>> Hvordan slipper jeg om det?

> Jeg ville nok bruge '' for streng og doble ' i streng indhold.

Tak til dig og Jan. Det lykkedes :-)

Kurt Hansen

unread,
Jun 1, 2016, 12:25:48 AM6/1/16
to
Den 29/05/2016 kl. 06.02 skrev Kurt Hansen:
> I en webshop har jeg en tabel der hedder »products_description«. I denne
> tabel er der et felt der hedder »products_description«.
>
> Indholdet (som er HTML) er genereret med et script i Filemaker Pro.
>
> Mit problem er at webshoppens database er blevet fucked up af ukendt
> årsag. Se dette skræmmeeksempel:
> http://danacordbutik.dk/product_info.php?products_id=28233

Jeg skal - på een eller anden måde - have erstattet de upfuckede
specialtegn, men jeg kan slet ikke overskue hvad der vil være nemmest og
bedst?

Skal jeg lave en eksport af tabellen, redigere den offline og indlæse
den igen i phpMyAdmin, eller kan jeg køre nogle querys efterhånden som
jeg falder over nogle upfuckere, f.eks.

UPDATE products_description
SET products_description = REPLACE(products_description, 'á', 'à')

Jeg kan ikke regne ud hvor 'á' stammer fra, hvilket tegnsæt det evt.
tilhører.

Kurt Hansen

unread,
Jun 1, 2016, 3:51:18 AM6/1/16
to
Jeg fandt denne tabel: http://www.i18nqa.com/debug/utf8-debug.html og
nappede den een adgangen med søg/erstat i et SQL-udtræk. Denne er nu
indlæst og det ser tilsyneladende fornuftigt ud :-)

Jan Hansen

unread,
Jun 1, 2016, 5:53:39 AM6/1/16
to
Kurt Hansen skrev Wed, 01 Jun 2016 09:51:18 +0200:

> Jeg fandt denne tabel: http://www.i18nqa.com/debug/utf8-debug.html og
> nappede den een adgangen med søg/erstat i et SQL-udtræk. Denne er nu
> indlæst og det ser tilsyneladende fornuftigt ud :-)

Hvis det er ved at blive en vane at webhotellet "forbedrer" dine data, er
det nemmeste nok at downloade en sql fil, åbne den i en editor i den
kodning de måtte have brugt, og så gemme den igen som iso-8859-1.

Eller bruge htmlentities imens tegnkodekrigen står på.
0 new messages