python sql 插入语句在数据库中插入带引号的值

python sql insert statement inserting values with quotes in database

我正在尝试使用以下语句将数据插入 python 中的 Mysql

cursor.execute('INSERT INTO batch_details (batch_id,plant_id,product_code) VALUES ("%s","%s","%s")', (id, plantcode, pcode))

这里id="75", plantcode="2", pcode="FG"

但是我在数据库中的值在 mysql 数据库中用单引号插入,即 '75','2','FG'

我不明白为什么要用单引号插入这些值。 sql 查询的语法似乎是正确的。

%s 表示您提供的值将被解释为字符串。对于您想成为整数的那些,请尝试使用 %d 代替。如果您希望 SQL 将值解释为数字而不是字符串,您可能还需要去掉 VALUES 列表中 %d 部分周围的引号字符。

另外,不同的程序或库在打印字符串时,有的打印单引号字符,有的打印双引号字符。无论哪种方式,它仍然是您数据库中的一个字符串,只是以一种风格不同的方式打印到屏幕上。

你确定你先把它变成了准备好的声明吗?请参阅文档示例 here -

cursor = cnx.cursor(prepared=True)
stmt = "SELECT fullname FROM employees WHERE id = %s" # (1)
cursor.execute(stmt, (5,))

否则,如果你只想直接进行字符串操作,你应该这样做

query = 'INSERT INTO batch_details (batch_id,plant_id,product_code) VALUES ("%s","%s","%s")'%(id, plantcode, pcode)
cursor.execute(query)