Как удалить элемент из таблицы SQL на основе ввода пользователя? - PullRequest
1 голос
/ 27 мая 2020

Я пытаюсь хранить элементы, URL-адреса и цены в базе данных MySQL и хотел дать пользователю возможность удалить элемент на основе имени. Я пытаюсь сделать это с помощью оператора DELETE sql, но он просто возвращает «0 элемент удален», и я предполагаю, что он не может найти запись, независимо от того, не принимает ли он ввод или что-то еще. Любая помощь будет принята с благодарностью, так как я действительно хотел бы разобраться в этом!

def deleteItem(): 
    goneItem = input("Enter item: ")
    removeItem = "DELETE FROM amazon_items WHERE itemName = '%s'"
    mycursor.execute(removeItem, goneItem)
    db.commit()
    print(mycursor.rowcount, "item removed")

Ответы [ 2 ]

2 голосов
/ 27 мая 2020

Попробуйте удалить одинарную кавычку вокруг %s, и вы должны передать значение для %s как кортеж

def deleteItem(): 
    goneItem = input("Enter item: ")
    removeItem = "DELETE FROM amazon_items WHERE itemName = %s"
    mycursor.execute(removeItem, (goneItem,))
    db.commit()
    print(mycursor.rowcount, "item removed")
0 голосов
/ 27 мая 2020

Привет LearningCode, добро пожаловать в stackoverflow,

mycursor.execute(removeItem, (goneItem,))

Попробуйте это.

Вы можете увидеть здесь в документации вам нужно включить запятую, чтобы сделать второй аргумент - кортеж.

...