John
John

Reputation: 43

How to insert rows of information into different rows in a mysql database?

I don't know how to insert a list of info into a mysql database.

I'm trying to insert rows data into a database but it is simply inserting the last row three times. The list is named "t" and it is a tuple .

Data:

11/04/19,17:33,33.4,55
11/04/19,17:34,22.9,57
11/04/19,17:35,11.9,81

Code:

import mysql.connector

sql = mysql.connector.connect(
    host='    ',
    user='    ',
    password='    ',
    db="     "
    )
cursor = sql.cursor()

f = open("C:\Cumulus\data\Apr19log.txt","r")

while True:
    s = f.readline()
    list=[]
    if (s != ""):
        t=s.split(',')
        for item in t:
            list.append(item)
    else:
        break;


sqllist =    """INSERT INTO station_fenelon (variable, date,             
time,outside_temp, outside_humidity)  
                VALUES (%s, %s, %s, %s, %s)"""

record =[(1, t[0], t[1], t[2],t[3]),
         (2, t[0], t[1], t[2],t[3]),
         (3, t[0], t[1], t[2],t[3])]

cursor.executemany(sqllist, record)
sql.commit()

I want to create three rows in the database with this list of information but is is only showing the last row of information in the database.

Upvotes: 0

Views: 38

Answers (1)

Underoos
Underoos

Reputation: 5200

Try this.

import mysql.connector
sql = mysql.connector.connect(host='',user='',password='',db='')
cursor = sql.cursor()
f = open("C:\Cumulus\data\Apr19log.txt","r")
st=[i.strip().split(',') for i in f.readlines()]

sqllist = """INSERT INTO station_fenelon (variable, date, time, outside_temp, outside_humidity) VALUES (%s, %s, %s, %s, %s)"""

record = [(i+1, j[0], j[1], j[2], j[3]) for i, j in enumerate(st)]

cursor.executemany(sqllist, record)
sql.commit()

Upvotes: 1

Related Questions