Daten über Schleife in Datenbank schreiben

  • Hallo alle zusammen,

    nachdem ich mit Hilfe von linusg den Zugriff auf die Datenbank hinbekommen habe,
    stehe ich jetzt vor einem neuen Problem.

    Hier das kleine Testprogramm, welches ich geschrieben habe, um das Beschreiben
    der Datenbank zu testen.

    #!/usr/bin/python3

    import pymysql

    # Datenbank öffnen
    db = pymysql.connect("localhost","root","Geheim","Datenbank" )

    cursor = db.cursor()

    cursor.execute("""insert into Temp (Datum) values('2017.03.20')""")
    cursor.execute("""insert into Temp (Zeit) values('10:44:00')""")
    cursor.execute("""insert into Temp (T1) values(18.2)""")
    cursor.execute("""insert into Temp (T2) values(20.9)""")

    cursor.close()

    # Datenbank schließen
    db.commit()
    db.close()

    Wenn es so ausgeführt wird, wird für jeden Datensatz eine neue Zeile eingefügt.
    Es soll aber so sein, das alle Daten in einer Zeile stehen.
    Ich möchte auch noch mehr Daten variablen einfügen können.
    Möchte es also über eine Schleife abfahren.

    Schleife könnte ja so aussehen


    for i in range(1, 6):
    cursor.execute('insert into ' & Tabelle & ' (' & Bezeichnung[i] & ') values(' & Wert[i] & ')')

    Hoffe das dies dann so gehen würde.

    Wäre ja auch kein Problem, wenn ich nach jeden cursor.execute in
    der Datenbank eine neue Zeile eingefügt würde.

    Wo habe ich meinen Denkfehler?
    Hoffe, das ich mich verständlich ausgedrückt habe.

    Gruß SolarTom aus der Lausitz

  • Hallo,

    Zitat

    Hoffe das dies dann so gehen würde.


    Programmieren ist nicht raten...

    Der obere Code ist prinzipiell ok, zeigt aber, dass die bei SQL die Grundlagen fehlen - mehrere Werte in eine Datensatz einfügen sind nun mal absolute Basics.

    Die Zeile `cursor.execute('insert into ' & Tabelle & ' (' & Bezeichnung[i] & ') values(' & Wert[i] & ')')` ist syntaktisch falsches Python bzw. macht mit Sicherheit nicht das, was du denkst hoffst. `&` führt in Python ein Bit-Weises "und" durch.

    Damit du eine mögliche Lösung auch verstehst, solltest du vielleicht mal dringend

    1. das offiziellen Python Tutorial durcharbeiten
    2. mal ein SQL-Tutorial lesen (davon gibt's ja reichlich im Netz), wo die Grundlagen zu den sog. CRUD (Create Read Update Delete) Befehlen erklärt werden.
    3. Die Doku zum SQLite3 Modul lesen: https://docs.python.org/3.5/library/sqlite3.html. Klar nutzt du MySQL, aber was da an Python + SQL erklärt wird, funktioniert vom Prinzip auch so mit MySQL .

    Ohne wirst du höchstwahrscheinlich immer wieder stecken bleiben, bzw. kannst Problem ausschließlich mit Hilfe dritter lösen - was auf Dauer ja ziemlich unzufriedenstellend ist.


    Gruß, noisefloor


  • Danke für die Denkanstöße.

    Habe es jetzt hinbekommen, das die Daten in die Datenbank geschrieben werden.

    Gruß SolarTom aus der Lausitz

    Hallo Tom, könntest du vielleicht den Code schicken, wie du das gemacht hast?
    Würde mir sehr weiterhelfen!

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!