Re: insert string problems..
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..
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..
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..
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