我创建了一个名为“ display_table”的函数来显示任何具有给定名称的表。当我调用此函数以显示名为“ members”的表时,出现以下错误。
mysql.connector.errors.ProgrammingError:1064(42000):您的SQL语法错误;检查与您的MySQL服务器>版本相对应的手册,以找到正确的语法以在
行的“成员”附近使用
def display_table(table_name):
sql = " select * from %s "
val = (table_name,)
mycursor.execute(sql,val)
myresult = mycursor.fetchall()
for row in myresult:
print(row)
display_table('members')
我不明白为什么会出现此错误。 请帮忙。
答案 0 :(得分:1)
您不能将表名作为参数传递给准备好的语句。仅列数据允许使用参数。您应该更改代码:
def display_table(table_name):
sql = " select * from %s " % table_name
mycursor.execute(sql)
myresult = mycursor.fetchall()
for row in myresult:
print(row)
display_table('members')