Comment permettre à l'utilisateur de donner un nom à la table créé ? [Résolu/Fermé]

Signaler
Messages postés
36
Date d'inscription
samedi 12 novembre 2016
Statut
Membre
Dernière intervention
7 juillet 2019
-
Messages postés
11732
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 août 2020
-
bonjour...
j'ai commencé comme ça.


import sqlite3

conn = sqlite3.connect('bdaremplir.sqlite')
cur = conn.cursor()

# à ameliorer : plus de précision (éviter : chiffres et éspaces)
tname = input('enter the name of your table (one word pls) : ')
if len(tname) > 1 :
tname = "bdpardefault"

cur.execute('DROP TABLE IF EXISTS ?' ,tname)

cur.execute('CREATE TABLE ? (org TEXT, count INTEGER)',tname)


et apparemment la "syntaxe error" provient de ce "?" dans mes cur.execute.

y'a t-il vraiment moyen de faire ça ? parce que j'ai cherché sur google mais...
bref si quelqu'un sait, ce serait vraiment cool. merci.

1 réponse

Messages postés
11732
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 août 2020
671
bonjour,
merci d'utiliser les balises de code pour poster du code, surtout python.
je suis surpris par ton test
len(tname) > 1
: dans quel but?
qu'as-tu cherché sur google? moi je chercherais comment concaténer des chaines de caractères?
es-tu certain de pouvoir utiliser les points d'interrogations pour autre chose que des valeurs?
Messages postés
36
Date d'inscription
samedi 12 novembre 2016
Statut
Membre
Dernière intervention
7 juillet 2019

len(tname) > 1
c'est juste pour s'assurer que c'est bien" un seul mots" qui est entré (j'ai fais ça vite fait).
pour le point d'interrogation, j'ai vu ça chez quelqu'un d'autre... je pensais que ça marcherai...
mais quand j'ai cherché sur google "créer une table sql avec python", à aucun moment j'ai vu un moyen de permettre à l'utilisateur de lui donner un nom à cette table.
Messages postés
11732
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 août 2020
671 >
Messages postés
36
Date d'inscription
samedi 12 novembre 2016
Statut
Membre
Dernière intervention
7 juillet 2019

as-tu affiché len(tname), pour vérifier si cela fait ce que tu imagines?
pourquoi ne crées-tu pas une variable qui contient le texte complet de la commande que tu veux exécuter?