← Back to team overview

sslug-teknik team mailing list archive

Re: Specialtegn i PostgresDB

 

On Sun, 26 Dec 2004 15:19:23 +0000, Jørgen Heesche wrote:

>>>Du  bruger backslash for at markere at det er tegnet for apostrof der
>>>ønskes. Du skal altså i din insert taste 'Jensen\'s Bøfhus'
>> 
>> 
>> Det virker så fordi Erling bruger postgres, '' er SQL-standardens måde
>> at gøre det på. 
> 
> Det er standardmetoden i linux(unix) til at markere, at man i en 
> tekststreng ønsker at indsætte en apostrof (') eller citationstegn ("), 
> og det har ikke noget med postgres at gøre.

Jo, det har da i høj grad noget med PostgreSQL at gøre. Jeg kan ikke se,
hvor shell-escaping kommer ind i billedet, andet end som en
forvirringsfaktor.

Og i øvrigt behøver man ikke nødvendigvis benytte \ til escpaing i
shell'en. Følgende to linjer giver fx. samme resultat i min shell:

echo "abc'def"
echo abc\'def

I den første linje er ingen escaping hverken nødvendig eller
hensigtsmæssig.

Tilbage til PostgreSQL:
Som Grove skriver, er svaret
INSERT ... VALUES ('Jensen''s Bøfhus')

Hvis man gør det fra en applikation, bør '-escaping foregå via den
PostgreSQL-specifikke funktion dertil. Se fx. følgende, der omhandler
C-applikationer:
http://www.postgresql.org/docs/7.4/static/libpq-exec.html#LIBPQ-EXEC-ESCAPE-STRING

-- 
Greetings from Troels Arvin, Copenhagen, Denmark



Follow ups

References