#python #sql
#python #sql
Вопрос:
Я пытаюсь выполнить sql-инструкцию через python. Но это не работает:
cursor.execute("UPDATE setting set foo=%s WHERE bar=%s", 4, str(sys.argv[1]))
Это также не работает:
t = ("4",sys.argv[1])
cursor.execute('UPDATE setting set foo=? WHERE bar=?', t)
Но этот работает:
cursor.execute('UPDATE setting set foo=%s WHERE bar="something"', 3)
Что я делаю не так?
Комментарии:
1. У вас есть какие-либо подробности о сообщении об ошибке? Чему равен sys.argv[1] перед тем, как вы вставите его в SQL?
Ответ №1:
Попробуйте запустить
cursor.execute("UPDATE setting set foo=%s WHERE bar=%s", (4, str(sys.argv[1])))
Аргументы необходимо передавать в виде кортежа, если их более одного.
Ответ №2:
Я думаю, вам нужно передать параметры в виде кортежа, даже если существует только один:
cur.execute("insert into people values (?, ?)", (who, age))
Или:
cur.execute("insert into people values (?, 100)", (who,))