Bonjour,
Je fais ça, mais avec Python 2.7 et sqlite3. Mais ici, ce n'est qu'un problème de traitement de chaîne:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| add_t=("INSERT INTO table"
"(%s,%s,%s) "
"VALUES (%s,%s,%s)")
col1 = 'nom'
col2 = 'prenom'
col3 = 'telephone'
data_c=(col1,col2,col3)
a='69'
b='36'
c='sfdfs'
data_t=(a,b,c)
chaine = add_t % (data_c+data_t)
print(chaine) |
Ce qui affiche:
INSERT INTO table(nom,prenom,telephone) VALUES (69,36,sfdfs)
Au cas où la syntaxe du pilote mysql demanderait que les valeurs soit entourées par des quotes, on peut les introduire soit dans les valeurs ("'" + 'sfdsf' + "'") soit dans le masque:
1 2 3
| add_t=("INSERT INTO table"
"(%s,%s,%s) "
"VALUES (%s,%s,'%s')") |
Ce qui donnera:
INSERT INTO table(nom,prenom,telephone) VALUES (69,36,'sfdfs')
J'utilise souvent une fonction qui fait ça, mais qui accepte un nombre de colonnes non connu à l'avance: il faut alors construire la ligne des noms de champs et celle des valeurs avec les virgules:
1 2
| print(','.join(data_c))
nom,prenom,telephone |
Partager