如何执行Update Mysql Python?

时间:2016-12-05 10:34:59

标签: python python-3.x

我有对DB进行更新查询的方法:

def update(url, status):
    try:

        cur = conn.cursor()
        cur.execute("""UPDATE apps SET status=%s WHERE id = 1""", (status))
        conn.commit()
        print("Updated: " + url)

    except:
        print("Update error: " + url)

它总是给我提示。

conn对象在另一个函数中定义,首先调用:

def connectDB():
    global cur
    global conn

    db = {
        'user': 'root',
        'password': '',
        'database': 'g'
    }

    """ Connect to MySQL database """
    try:
        conn = mysql.connector.connect(host='localhost',
                                       database=db['database'],
                                       user=db['user'],
                                       password=db['password'])
        if conn.is_connected():
            pass


    except Error as e:
        print(e)

    finally:
        print("MySQL Done...")

所以,堆栈是:

connectDB();

for link in links:
   update(link, 1)

1 个答案:

答案 0 :(得分:1)

在这一行:

cur.execute("""UPDATE apps SET status=%s WHERE id = 1""", (status))

参数应作为元组传递给cur.execute()。在单个项目周围添加括号不是元组,它是一个表达式。试试这个:

cur.execute("""UPDATE apps SET status=%s WHERE id = 1""", (status,))

此处,中的(status,)完全不同;这个论点现在是一个元组。