在python mysql

时间:2019-06-03 08:09:28

标签: python mysql python-3.x

我创建了一个名为“ 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')

我不明白为什么会出现此错误。 请帮忙。

1 个答案:

答案 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')