amb_ols
amb_ols

Reputation: 1

Inserting values from python3 list into mysql

m = input('Num1:')
m = int(m)
x1 = (m-1)
#
m = input('Num2:')
m = int(m)
x2 = (m-1)
#
z = [0,0,0,0,0,0,0,0,0]
z[(x1)] = 1
z[(x2)] = 1
##########################################
import mysql.connector
list = z
print(list)

mydb = mysql.connector.connect(host="localhost", user="root", passwd="onsdag", db="eno")
conn = mydb.cursor()

params = ['?' for item in list]
sql = 'INSERT INTO bola (n01, n02, n03, n04, n05, n06, n07, n08, n09) VALUES (%s);' % ','.join(params)
conn.execute(sql, list)

mydb.commit()

print(conn.rowcount, 'record inserted')


print(conn.rowcount, 'record inserted')
Num1:5
Num2:8
[0, 0, 0, 0, 1, 0, 0, 1, 0]
Traceback (most recent call last):
  File "inputxx.py", line 26, in <module>
    conn.execute(sql, list)
  File "/home/amb/.local/lib/python3.6/site-packages/mysql/connector/cursor.py", line 543, in execute
    "Not all parameters were used in the SQL statement")
mysql.connector.errors.ProgrammingError: Not all parameters were used in the SQL statement

Upvotes: 0

Views: 66

Answers (1)

user5658788
user5658788

Reputation:

The problem is in your MySQL Insert script. You can update this as shown below.

conn.execute("INSERT INTO bola(n01, n02, n03, n04, n05, n06, n07, n08, n09) VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s)",tuple(data))

Your values count should always match the number of columns.

Here the data is a list object.

Upvotes: 1

Related Questions