Jawaban atas pertanyaan awal Anda adalah:Tidak, Anda tidak dapat memasukkan daftar seperti itu.
Namun, dengan beberapa penyesuaian, Anda dapat membuat kode tersebut berfungsi dengan menggunakan %r
dan meneruskan sebuah Tuple:
variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1, variable_2]
print "INSERT INTO table VALUES %r;" % (tuple(varlist),)
Sayangnya, gaya penyisipan variabel tersebut membuat kode Anda rentan terhadap serangan injeksi SQL .
Sebagai gantinya, sebaiknya gunakan API DB Python dan membangun string kueri yang disesuaikan dengan beberapa tanda tanya untuk data yang akan dimasukkan:
variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1,variable_2]
var_string = ', '.join('?' * len(varlist))
query_string = 'INSERT INTO table VALUES (%s);' % var_string
cursor.execute(query_string, varlist)
Contoh di awal dokumen SQLite3 menunjukkan cara menyampaikan argumen menggunakan tanda tanya dan menjelaskan mengapa argumen itu diperlukan (pada dasarnya, ini memastikan kutipan yang benar dari variabel Anda).