Retrieving possible list for use in a subsequent INSERT
Nick the Gr33k
nikos.gr33k at gmail.com
Thu Oct 31 17:54:16 EDT 2013
Στις 31/10/2013 9:22 μμ, ο/η rurpy at yahoo.com έγραψε:
>
> 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 )
Hello rurpy! I haven't forget ypu still have to answer you i the other
thread for the big explanation you provided, i just didnt had the time yet!
Yes indeed by MySQL's time definition 'downloads' columns is set as:
'varchar(50) not null'
So we have 2 options as you said:
1. Alter the type of 'downloads' colums to soemthign that can hold a list
2. Alter the code to make list beceome an alltogether joined string.
# find out if visitor had 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 = ', '.join( downloads )
else:
downloads = None
# add this visitor entry into database (host && downloads are unique)
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) )
I can be seen here: http://superhost.gr/?show=log&page=index.html
But this unfortunate;y do not produce proper results
More information about the Python-list
mailing list