On 10/31/2013 03:24 AM, Nick the Gr33k wrote:
>[...] 
> # find out if visitor has downloaded torrents in the past
>       cur.execute('''SELECT torrent FROM files WHERE host = %s''', host )
>       data = cur.fetchall()
> 
>       downloads = []
>       if data:
>               for torrent in data:
>                       downloads.append( torrent )
>       else:
>               downloads.append( 'None Yet' )
> 
> # add this visitor entry into database
> cur.execute('''INSERT INTO visitors (counterID, refs, host, city, 
> useros, browser, visits, downloads) VALUES (%s, %s, %s, %s, %s, %s, %s, 
> %s)''', (cID, refs, host, city, useros, browser, visits, downloads) )
>[...]

and 

On 10/31/2013 03:32 AM, Nick the Gr33k wrote:
> The error seen form error log is:
> 
> [Thu Oct 31 09:29:35 2013] [error] [client 46.198.103.93]
> [Thu Oct 31 09:29:35 2013] [error] [client 46.198.103.93] Traceback 
> (most recent call last):
> [Thu Oct 31 09:29:35 2013] [error] [client 46.198.103.93]   File 
> "/home/nikos/public_html/cgi-bin/metrites.py", line 274, in <module>
> [Thu Oct 31 09:29:35 2013] [error] [client 46.198.103.93]     (cID, 
> refs, host, city, useros, browser, visits, downloads) )
> 
> [Thu Oct 31 09:29:35 2013] [error] [client 46.198.103.93] 
> pymysql.err.InternalError: (1241, 'Operand should contain 1 column(s)')
> 
> line 274 is:
> 
> # add this visitor entry into database
> cur.execute('''INSERT INTO visitors (counterID, refs, host, city, 
> useros, browser, visits, downloads) VALUES (%s, %s, %s, %s, %s, %s, %s, 
> %s)''',  (cID, refs, host, city, useros, browser, visits, downloads) )


You set the value of 'downloads' to a list:

>       downloads = []
>       if data:
>               for torrent in data:
>                       downloads.append( torrent )

and when you use 'downloads', use have:

  INSERT INTO visitors (..., downloads) VALUES (..., %s), (..., downloads)

If the 'downloads' column in table 'visitors' is a 
normal scalar value (text string or such) then perhaps
you can't insert a value that is a list into it?  And
that may be causing your problem?

If that is in fact the problem (I am only guessing), you 
could convert 'downloads' to a single string for insertion
into your database with something like,

  downloads = ', '.join( downloads ) 
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to