-1
import mysql.connector

mydb = mysql.connector.connect(host= 'localhost', user='root', passwd="barbie", db='data')

mycursor = mydb.cursor() #execute, fetch data act as a pointer
print("Connected to database")
query = ("select name , matric from users where username = %s")
username = 'shawn'
mycursor.execute(query, (username))
print ("Fetching single row")
record  = mycursor.fetchone
print (record)

The errors

Why do I get this kind of error? I only want to display the row.

The table from my database

eyllanesc
  • 235,170
  • 19
  • 170
  • 241
Biha
  • 9
  • 2

1 Answers1

0

The error is how you are passing the parameters to execute. execute takes an iterable (list/tuple) but you are passing a single value. The following 2 lines are equivalent

(username)
username

To make a tuple with only 1 element you need to add a comma (,)

mycursor.execute(query, (username, ))
Iain Shelvington
  • 31,030
  • 3
  • 31
  • 50