我有对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)
答案 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,)
完全不同;这个论点现在是一个元组。