Lukasz Szybalski wrote: > On Sat, 2006-04-15 at 12:01 +0000, Andrew Chambers wrote: >> * Lukasz Szybalski <[EMAIL PROTECTED]> [2006-04-14 12:00:09 -0500]: >> >>> INSERT INTO table_x( body)VALUES( '%s')" % (body) >>> >>> this body is a string that varies in size. I keep getting an error if >>> the size of body is longer then 255, and if its smaller everything >>> goes smooth. Is this syntax correct? should '%s' be something else? >> What is the datatype of body? It sounds like it is CHAR(255). Can you >> change this to be TEXT? >> > Yes it is text. > mysql> describe table_x; > +----------+---------+------+-----+---------+-------+ > | Field | Type | Null | Key | Default | Extra | > +----------+---------+------+-----+---------+-------+ > | id | int(11) | | PRI | 0 | | > | body | text | YES | | NULL | | > +----------+---------+------+-----+---------+-------+ > > Would some kind of characters that are passed in had something to do > with the error, maybe EOF or something similar? > > The string that is passed in is from xml node. For debugging i made it > return str(body), but that didn't change anything. > > Are there any other database/%s related requirements? > > Lukasz > > >> Regards, >> Andy
My observation is that with MySQLdb %s is a parameter substitution value not a string substitution indicator. What happens when you try something like this; >>> stmt = "INSERT INTO table_x (body) VALUES (%s)" # [1] >>> cursor.execute(stmt, (body,)) [1] note that there are no quote marks around the %s Regards, Andy -- -------------------------------------------------------------------------------- From the desk of Andrew J Todd esq - http://www.halfcooked.com/ _______________________________________________ DB-SIG maillist - DB-SIG@python.org http://mail.python.org/mailman/listinfo/db-sig