Python-SQL更新语法问题

2024-09-27 23:27:02 发布

您现在位置:Python中文网/ 问答频道 /正文

您好,我正在跟踪Python MYSQL update statement,并设法为我的程序的SQL Update with variables函数生成以下代码:

def editInfo(start, userName):
    newFavGenre = input("Enter your favourite genre")
    newFavArtist = input("Enter your favourite artist")
    ## userName is a global variable
    con = lite.connect(db)
    cur = con.cursor()
    cur.execute ("""
    UPDATE users
    SET favGenre=%s, favArtist=%s
    WHERE username=%s
""", (newFavGenre, newFavArtist, userName))
    results = cur.fetchall()
    return result
    mainmenu()

并不断尝试这个错误代码:

sqlite3.OperationalError: near "%": syntax error

你知道我哪里出错了吗?你知道吗


Tags: 程序inputsqlyourmysqlusernameupdatecon
1条回答
网友
1楼 · 发布于 2024-09-27 23:27:02

你看到的帖子似乎是针对MySQL的,我猜想你使用的是基于错误的sqlite3python接口。你知道吗

看看sqlite3 docs。。。你知道吗

cur.execute("""
    UPDATE users
    SET favGenre=%s, favArtist=%s
    WHERE username=%s
""", (newFavGenre, newFavArtist, userName))

应该改为

cur.execute("""
    UPDATE users
    SET favGenre=?, favArtist=?
    WHERE username=?
    """, (newFavGenre, newFavArtist, userName))

您还可以使用它们的命名样式,而不是使用元组,而是使用字典。你知道吗

cur.execute("""
    UPDATE users
    SET favGenre=:genre, favArtist=:artist
    WHERE username=:username
""", {'genre':newFavGenre, 'artist': newFavArtist, 'username':userName})

相关问题 更多 >

    热门问题