Retrieving possible list for use in a subsequent INSERT

Nick the Gr33k nikos.gr33k at gmail.com
Thu Oct 31 18:24:57 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 )

create table visitors
(
   counterID integer(5) not null,
   host varchar(50) not null,
   refs varchar(25) not null,
   city varchar(20) not null,
   userOS varchar(10) not null,
   browser varchar(10) not null,
   hits integer(5) not null default 1,
   visits datetime not null,
   downloads set('Καμία Ακόμη'),
   foreign key (counterID) references counters(ID),
   unique index (visits)
  )ENGINE = MYISAM;

Decided to declare downlods as  SET column type.
and maintain this:

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


but error still is:

[Thu Oct 31 22:24:41 2013] [error] [client 46.198.103.93] 
pymysql.err.InternalError: (1241, 'Operand should contain 1 column(s)')



More information about the Python-list mailing list