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)
我正在尝试使用以下语句将数据插入 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)