Noniin vielä yhden kysyn :D
cursor.execute("""
INSERT INTO *** (title,time_start,time_end,description,category,
VALUES (%s,%s,%s,%s,%s,%s)""",
(div_desc_title_str,
div_desc_time_str_start,
div_desc_time_str_end,
div_desc_desc,
div_cat,
date))
Pitäisi saada muuttuja 'channel' (joka vaihtuu loopin jokaisella kierroksella) tuohon *** paikalle, mutta en tiedä miten. Olen koittanut %s % channel saada tuota kohdalleen samaan tapaan kuin muutkin yllä olevassa koodissa, mutta ei mene läpi. Suoraan tuohon *** paikalle kun en voi kirjoittaa tuota muuttujaa.
Siis kirjoitat samaa dataa rakenteeltaan samanlaisiin tauluihin? No, miksei, jos se jostain erikoisesta syystä on perusteltua.
Ensiksikin noista ainakin pari kenttää näyttäisi olevan merkkijonotyyppisiä, luultavasti useampikin. Et ole kuitenkaan laittanut %s:ien ympärille heittomerkkejä eli korjaapa niistä tarvittavat kohdat. Toivottavasti olet escapettanut syötettävät merkkijonot.
Kysymykseesi:
tables = ('eka', 'toka', 'kolmas') for channel in tables: cursor.execute("""INSERT INTO %s (title,time_start,time_end,description,category,date) VALUES ('%s','%s','%s','%s',%s,'%s')""", (channel, div_desc_title_str, div_desc_time_str_start, div_desc_time_str_end, div_desc_desc, div_cat, date))
Edit: Laitoinpa tuohon nyt noita heittomerkkejä muiden kuin div_catin kohdalle, jos se vaikka olisi luku.
Edit 2: Vai hoitaako tuo cursor nuo heittomerkit ja escapetukset? Voi olla niinkin.
Ei pitäisi kirjoitella kiireessä. Tässä kenties toimivampi versio:
tables = ('eka', 'toka', 'kolmas') for channel in tables: cursor.execute("""INSERT INTO %s (title,time_start,time_end,description,category,date) VALUES (%s,%s,%s,%s,%s,%s)""" % channel, (div_desc_title_str, div_desc_time_str_start, div_desc_time_str_end, div_desc_desc, div_cat, date))
Heittomerkkien ja escapetusten tarpeesta en osaa sanoa.
Chiman kirjoitti:
Ei pitäisi kirjoitella kiireessä. Tässä kenties toimivampi versio:
tables = ('eka', 'toka', 'kolmas') for channel in tables: cursor.execute("""INSERT INTO %s (title,time_start,time_end,description,category,date) VALUES (%s,%s,%s,%s,%s,%s)""" % channel, (div_desc_title_str, div_desc_time_str_start, div_desc_time_str_end, div_desc_desc, div_cat, date))Heittomerkkien ja escapetusten tarpeesta en osaa sanoa.
Antaa virheen:
VALUES (%s,%s,%s,%s,%s,%s)""" % channel,
TypeError: not enough arguments for format string
No niinpä tietysti. Tällä kertaa taas testasin itsekin:
tables = ('eka', 'toka', 'kolmas') for channel in tables: cursor.execute("""INSERT INTO %s (title,time_start,time_end,description,category,date) VALUES (%s,%s,%s,%s,%s,%s)""" % (channel, '%s','%s','%s','%s','%s','%s'), (div_desc_title_str, div_desc_time_str_start, div_desc_time_str_end, div_desc_desc, div_cat, date))
Vaihtoehtoinen, siistimpi tapa:
tables = ('eka', 'toka', 'kolmas') for channel in tables: cursor.execute("INSERT INTO " + channel + """ (title,time_start,time_end,description,category,date) VALUES (%s,%s,%s,%s,%s,%s)""", (div_desc_title_str, div_desc_time_str_start, div_desc_time_str_end, div_desc_desc, div_cat, date))
Tuhannet kiitokset jälleen kerran :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.