Обсуждение: Syntax error with select statement

Поиск
Список
Период
Сортировка

Syntax error with select statement

От
aravind chandu
Дата:
Hello,
          I have problem with select statement in c++ program I am using pqxx library to connect to postgresql database.My query is

          result R(T.exec(" select * from dbtable where username =  ' "+user+" ' and password = ' "+st+" ' "));

         here st is in encrypted format and the string is st = M^fuo|`sjyo|`so|>-?z  this is the string i stored in the table .

        The error I was encountered is "terminate called after throwing an instance of 'pqxx::syntax_error'
  what():  ERROR:  unterminated quoted string at or near "'M^fuo|`sjyo|`so|>-?z"
LINE 1: ...table where username = 'achandana' and password = 'M^fuo|`sj...
                                                                                                  ^    "

 I am not able to identify what the actual problem is can you guys please help to solve this problem?Your help is greatly appreciated.

Thank You,
Aravind.
                                                             ^


Re: Syntax error with select statement

От
justin
Дата:
aravind chandu wrote:
Hello,
          I have problem with select statement in c++ program I am using pqxx library to connect to postgresql database.My query is

          result R(T.exec(" select * from dbtable where username =  ' "+user+" ' and password = ' "+st+" ' "));

         here st is in encrypted format and the string is st = M^fuo|`sjyo|`so|>-?z  this is the string i stored in the table .

        The error I was encountered is "terminate called after throwing an instance of 'pqxx::syntax_error'
  what():  ERROR:  unterminated quoted string at or near "'M^fuo|`sjyo|`so|>-?z"
LINE 1: ...table where username = 'achandana' and password = 'M^fuo|`sj...
                                                                                                  ^    "

 I am not able to identify what the actual problem is can you guys please help to solve this problem?Your help is greatly appreciated.

Thank You,
Aravind

Well its telling you in the error the quotes are flaky.  It apears that the password portion contains another sing quote.

I would move to double dollar quoting when dealing with strings that contain special characters

example
R(T.exec(" select * from dbtable where username =  $UserName$ " + user + " $Username$ and password = $Password$ " + st + " $Password$ "));

see http://www.postgresql.org/docs/8.3/static/sql-syntax-lexical.html
on dollar quoting

Re: Syntax error with select statement

От
"Joshua J. Kugler"
Дата:
On Wednesday 17 December 2008, justin said something like:
> aravind chandu wrote:
> > Hello,
> >           I have problem with select statement in c++ program I am
> > using pqxx library to connect to postgresql database.My query is
> >
> >           result R(T.exec(" select * from dbtable where username =
> > ' "+user+" ' and password = ' "+st+" ' "));
> >
> >          here st is in encrypted format and the string is st =
> > M^fuo|`sjyo|`so|>-?z  this is the string i stored in the table .
> >
> >         The error I was encountered is "terminate called after
> > throwing an instance of 'pqxx::syntax_error'
> >   what():  ERROR:  unterminated quoted string at or near
> > "'M^fuo|`sjyo|`so|>-?z"
> > LINE 1: ...table where username = 'achandana' and password =
> > 'M^fuo|`sj...
> >
> > ^    "
> >
> >  I am not able to identify what the actual problem is can you guys
> > please help to solve this problem?Your help is greatly appreciated.
> >
> > Thank You,
> > Aravind
>
> Well its telling you in the error the quotes are flaky.  It apears
> that the password portion contains another sing quote.
>
> I would move to double dollar quoting when dealing with strings that
> contain special characters
>
> example
> R(T.exec(" select * from dbtable where username =  $UserName$ " +
> user + " $Username$ and password = $Password$ " + st + " $Password$
> "));
>
> see http://www.postgresql.org/docs/8.3/static/sql-syntax-lexical.html
> on dollar quoting

Better yet, use placeholders and let the driver do the quoting.

j

--
Joshua Kugler
Part-Time System Admin/Programmer
http://www.eeinternet.com
PGP Key: http://pgp.mit.edu/  ID 0xDB26D7CE

Re: Syntax error with select statement

От
aravind chandu
Дата:
Hello,
      
                 Thanks for your help,but i still have some problem.While executing it i encountered an error something like this:
terminate called after throwing an instance of 'pqxx::syntax_error'
  what():  ERROR:  unterminated dollar-quoted string at or near "$Password$ M^fuo|`sjyo|`so|>-?z"
LINE 1: ... = $Username$ achandana $Username$ and password = $Password$...
                                                             ^

I just give the query as it is in your previous mail.But still i got some problem can you please tell me.

Thank You,
Aravind.

--- On Thu, 12/18/08, Joshua J. Kugler <joshua@eeinternet.com> wrote:
From: Joshua J. Kugler <joshua@eeinternet.com>
Subject: Re: [GENERAL] Syntax error with select statement
To: pgsql-general@postgresql.org
Date: Thursday, December 18, 2008, 1:51 AM

On Wednesday 17 December 2008, justin said something like:
> aravind chandu wrote:
> > Hello,
> > I have problem with select statement in c++ program I am
> > using pqxx library to connect to postgresql database.My query is
> >
> > result R(T.exec(" select * from dbtable where username
=
> > ' "+user+" ' and password = ' "+st+"
' "));
> >
> > here st is in encrypted format and the string is st =
> > M^fuo|`sjyo|`so|>-?z this is the string i stored in the table .
> >
> > The error I was encountered is "terminate called after
> > throwing an instance of 'pqxx::syntax_error'
> > what(): ERROR: unterminated quoted string at or near
> > "'M^fuo|`sjyo|`so|>-?z"
> > LINE 1: ...table where username = 'achandana' and password =
> > 'M^fuo|`sj...
> >
> > ^ "
> >
> > I am not able to identify what the actual problem is can you guys
> > please help to solve this problem?Your help is greatly appreciated.
> >
> > Thank You,
> > Aravind
>
> Well its telling you in the error the quotes are flaky. It apears
> that the password portion contains another sing quote.
>
> I would move to double dollar quoting when dealing with strings that
> contain special characters
>
> example
>R(T.exec(" select * from dbtable where username = $UserName$ "
+
> user + " $Username$ and password = $Password$ " + st + "
$Password$
> "));
>
> see http://www.postgresql.org/docs/8.3/static/sql-syntax-lexical.html
> on dollar quoting

Better yet, use placeholders and let the driver do the quoting.

j

--
Joshua Kugler
Part-Time System Admin/Programmer
http://www.eeinternet.com
PGP Key: http://pgp.mit.edu/  ID 0xDB26D7CE

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general