【发布时间】:2018-11-15 22:26:02
【问题描述】:
我正在尝试按照下面帖子中的描述做一些事情,我使用基本的 python 程序简化了这一点,而不是使用烧瓶,只是为了证明我的概念,但我遇到了一些问题。
flask_mysqldb Delete FROM variable table
我的代码如下;
import mysql.connector as mariadb
new = 'ksk'
mariadb_connection = mariadb.connect(user='root', password='mypwd',
database='customers')
cursor = mariadb_connection.cursor()
cursor.execute("DELETE FROM customer_info WHERE name = %s" % (new))
mariadb_connection.commit()
print('its gone')
这会在我的表格中抛出一个错误,
"unknown column 'ksk' in where clause"
这不是真的,我可以看到名称为 ksk 的行。
进一步证明这一点,如果我将删除语句更改为:
cursor.execute("DELETE FROM customer_info WHERE name = 'ksk'
行 ksk 被成功删除。我哪里错了?
【问题讨论】:
-
简答:使用逗号而不是百分比。
-
试过这个,它抛出一个字符串不可调用的错误。出于某种原因使用 SELECT 功能而不是 DELETE 功能时,逗号方法是否有效?
-
您的字符串没有被转义/引用。它被视为列名。
-
请问您能告诉我如何纠正吗?放 new = 'ksk' 不合适吗?还是我需要在我的 DELETE 语句中引用为“新”?
-
@PrimitiveSource - 由于您只有一个项目,因此您需要一个额外的逗号:
(new,)使其成为“元组”。