inserting an apostrophe

From: Peter Choe <choepete(at)mindspring(dot)com>
To: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: inserting an apostrophe
Date: 2003-09-08 19:43:37
Message-ID: 3F5CDBE9.1030805@mindspring.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

i am trying to add a record of a name. the name has an apostrophe (O'Neil).

i am doing this through a servlet and wrote the code to use
PreparedStatement.

when i do:

...
PrepareStatement pstmt = con.prepareStatement("INSERT INTO directory
(name, phone) VALUES (?,?)");
pstmt.setString(1, name);
pstmt.setString(2, phone);
pstmt.executeUpdate();
...

i get the following error:

java.sql.SQLException: ERROR: parser: parse error at or near "NEIL" at character 47

at org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:94)
at org.postgresql.Connection.ExecSQL(Connection.java:398)
at org.postgresql.jdbc2.Statement.execute(Statement.java:130)
at org.postgresql.jdbc2.Statement.executeQuery(Statement.java:54)

i thought that if i use the setString() method of the prepared
statement, it would automatically escape the apostrophe.

it only seems to be doing it on INSERT. with UPDATE it seems to behave
as it should (escape the character).

if i enter the record from psql, it works fine.

i am using postgres 7.2 on a freebsd 4.3 platform and jdk1.3.1

Peter Choe

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Richard Huxton 2003-09-08 19:55:21 Re: About GPL and proprietary software
Previous Message scott.marlowe 2003-09-08 19:30:30 Re: decrypted pwd