Python删除带有python变量的mysql / mariadb不起作用

时间:2018-11-15 22:26:02

标签: python mysql mariadb

我正在尝试执行以下文章中所述的操作,我已经通过基本的python程序简化了此操作,而不是使用flask,只是为了证明我的概念,但是我遇到了一些问题。

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的行。

如果我将delete语句更改为:

cursor.execute("DELETE FROM customer_info WHERE name = 'ksk'

行ksk被成功删除。我要去哪里错了?

1 个答案:

答案 0 :(得分:0)

https://pynative.com/python-mysql-execute-parameterized-query-using-prepared-statement/-

  

然后我们按顺序将这两列值添加到输入 tuple 中,并传递了SQL更新查询和输入元组t0 cursor.execute()函数,请记住,元组包含占位符顺序的用户数据

     

CURSOR的execute()方法采用可选的第二个参数,其中包含数据值列表。列表中的每个条目都必须为元组格式,才能与语句中的参数标记关联。