Re: insert string problems..

2007-10-28 Thread Marc 'BlackJack' Rintsch
On Sun, 28 Oct 2007 00:24:34 -0700, Abandoned wrote:

> Hi..
> I want to insert some data to postgresql..
> My insert code:
> yer="019"
> cursor.execute("INSERT INTO ids_%s (id) VALUES (%s)", (yer, id))
> I don't want to use % when the insert operation.
> 
> in this code give me this error:
> psycopg2.ProgrammingError: syntax error at or near "'019'"
> LINE 1: SELECT link_id from linkkeywords_'019'

You are executing an INSERT and get an error about a SELECT!?  Hard to
believe!

But in both SQL statements you try to insert table names via placeholders.
This doesn't work as those placeholders are *values* that will be escaped.
The errormessage is quite clear IMHO::

  SELECT link_id from linkkeywords_'019'

That's not a valid table name because of the ' that got added when
inserting the *value* '019'.

Starting to number tables and the need to dynamically create table names is
usually sign of a bad schema design BTW.

Ciao,
Marc 'BlackJack' Rintsch
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: insert string problems..

2007-10-28 Thread Abandoned
On Oct 28, 9:45 am, Steven D'Aprano <[EMAIL PROTECTED]
cybersource.com.au> wrote:
> On Sun, 28 Oct 2007 00:24:34 -0700, Abandoned wrote:
> > Hi..
> > I want to insert some data to postgresql.. My insert code:
> > yer="019"
> > cursor.execute("INSERT INTO ids_%s (id) VALUES (%s)", (yer, id)) I don't
> > want to use % when the insert operation.
>
> > in this code give me this error:
> > psycopg2.ProgrammingError: syntax error at or near "'019'" LINE 1:
> > SELECT link_id from linkkeywords_'019'
>
> > if i do int(yer) , 019 change to 19 .. How can i do int yer string with
> > 0 ?
>
> Integers with a leading 0 are interpreted as base 8 (octal). You can't
> write 019, because there is no digit "9" in octal.
>
> Why do you need a leading zero?
>
> --
> Steven.
Thank you steven.
I must use 019 beacause my system algoritm in this way..
And what about second question ?

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: insert string problems..

2007-10-28 Thread Steven D'Aprano
On Sun, 28 Oct 2007 00:24:34 -0700, Abandoned wrote:

> Hi..
> I want to insert some data to postgresql.. My insert code:
> yer="019"
> cursor.execute("INSERT INTO ids_%s (id) VALUES (%s)", (yer, id)) I don't
> want to use % when the insert operation.
> 
> in this code give me this error:
> psycopg2.ProgrammingError: syntax error at or near "'019'" LINE 1:
> SELECT link_id from linkkeywords_'019'
> 
> if i do int(yer) , 019 change to 19 .. How can i do int yer string with
> 0 ?

Integers with a leading 0 are interpreted as base 8 (octal). You can't 
write 019, because there is no digit "9" in octal.

Why do you need a leading zero?


-- 
Steven.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: insert string problems..

2007-10-28 Thread Abandoned
Also..
a="123,245,1235,663"
cursor.execute("SELECT id, name FROM data WHERE id in (%s)", (a,))
In this query must be:
SELECT id, name FROM data WHERE id in (123,245,1235,663)
but it looks:
SELECT id, name FROM data WHERE id in ("123,245,1235,663")
How can i delete " ?

-- 
http://mail.python.org/mailman/listinfo/python-list