info = "'INSERT INTO brush_card_record(brush_card_date, brush_card_time, card_num_6061, card_num_6654) VALUES(?,?,?,?)',('2017-05-28','12:23:32', 123, 0) "
cur.execute(info)
Cela signalera une erreur : sqlite3.OperationalError
cur.execute('INSERT INTO brush_card_record(brush_card_date, brush_card_time, card_num_6061, card_num_6654) VALUES(?,?,?,?)',('2017-05-28','12:23:32', 123, 0 ))
Cela fonctionnera.
cur.execute a deux paramètres, l'un est SQL et l'autre consiste à transmettre des valeurs aux paramètres SQL. Votre première phrase entre guillemets doubles est équivalente à une chaîne, c'est-à-dire un paramètre, et le deuxième paramètre ne l'est pas. passé
info = "INSERT INTO brush_card_record(brush_card_date, brush_card_time, card_num_6061, card_num_6654) VALUES(%s,%s,%s,%s)"%('2017-05-28','12:23:32', 123 , 0)
或者str.format
La question a été trouvée, merci pour la réponse !
Lorsque l'insertion de nouvelles données dans la table de la base de données est dynamique, un meilleur moyen consiste à générer d'abord str, puis à la transmettre à cur.execute() en tant que paramètre.
Exemple de code :