CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Python/PhpMyAdmin

Linkau
Linkau
Niveau 4
02 février 2021 à 13:32:47

Hey tout le monde ^^,

Je cherche à intégrer des données dans une bdd et pour ça je voulais utiliser un fichier txt avec le nom des tables et pour chaque table j'insere ce type de données.
Je ne sais pas si j'ai été très clair ^^'.
Pour aider je pensais faire comme ça mais cela ne fonctionne pas :

import mysql.connector
conn = mysql.connector.connect(host="localhost",
                               user="root", password="root",
                               database="projet")
cursor = conn.cursor()
file1 = open('test1.txt', "r")
test2=[]
for lines in file1:
        test2.append(lines)
file1.close()
test3 =  [x[0:-1] for x in test2]
print(test3)
for i in range(len(test3)):
    print(test3[i])
    reference = ('127.15.15',"rdfbg",1,2)
    cursor.execute("""INSERT INTO  test3[i] (IP,status,time,total_time) VALUES(%s, %s, %s, %s)""", reference)
conn.commit()   
conn.close()

Merci d'avance à ceux qui pourront m'aider ^^

Seelker
Seelker
Niveau 5
02 février 2021 à 15:15:19

Il manque beaucoup d'informations.

Qu'est-ce qui ne fonctionne pas ? Tu as une log de l'erreur ? Un message quelque part ?
Je ne comprends pas bien ton script, tu essaies de stocker dans test3 des noms de tables ?
Je ne sais pas où tu te situes, et ta requête INSERT semble manquer d'arguments pour les valeurs à entrer.

Linkau
Linkau
Niveau 4
02 février 2021 à 16:01:26

Merci pour votre réponse,

En fait j'ai des noms de tables dans ce fichier texte et cela devrait me permettre d'ajouter une ligne dans chaque table à chaque passage de boucle

Effectivement j'ai oublié de mettre le message d'erreur

Entre temps, j'ai fait quelques modifications pour essayer

reference = (test3[i],'127.15.15',"rdfbg",1,2)
cursor.execute("INSERT INTO %s (IP,status,time,total_time) VALUES(%s, %s, %s, %s)", reference)

mais cela m'affiche toujours le même message d'erreur que voici :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''youtube' (IP,status,time,total_time) VALUES('127.15.15', 'rdfbg', 1, 2)' at line 1

Seelker
Seelker
Niveau 5
02 février 2021 à 16:27:11

Un drôle de quote se balade après le nom de la table, un peu bizarre.
Si on peut enlever ce quote, cela devrait mieux se passer.

Linkau
Linkau
Niveau 4
02 février 2021 à 16:42:50

Ouais ca devrait etre ça mais le problème c'est que même avec strip sur test3[i] pour enlever les quotes autour de la table, cela ne change rien

Azerban
Azerban
Niveau 16
02 février 2021 à 16:58:28

Utilise SQLAlchemy mon ami :ok:

Seelker
Seelker
Niveau 5
02 février 2021 à 17:25:33

Je ne fais pas activement de Python, mais certainement +1 avec l'avis du VDD.
Si tu as un outil qui te met mieux en forme ces requêtes, ça peut éviter des erreurs.

Linkau
Linkau
Niveau 4
02 février 2021 à 18:50:19

Merci tout le monde pour vos réponses

Après plusieurs heures de recherches et avec vos pistes j'ai enfin trouvé

Voila la solution au cas où quelqu'un chercherait:

import mysql.connector
conn = mysql.connector.connect(host="localhost",
                               user="root", password="root", 
                               database="projet")
cursor = conn.cursor()

file1 = open('test1.txt', "r")
test2=[]
for lines in file1:
        test2.append(lines)
file1.close()
test3 =  [x[0:-1] for x in test2]
print(test3)
for i in range(len(test3)):
    print(test3[i])
    reference = ('127.15.15',"rdfbg",1,2)
    cursor.execute("INSERT INTO "+ test3[i] + "(IP,status,time,total_time) VALUES(%s, %s, %s, %s)", reference)

conn.commit()    
conn.close()
Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment