我有一个用python编写的sql。
cur.execute("INSERT INTO products_details(
title,
description,
price,
currency,
sku,
brand,
colors,
sizes,
actual_url,
meta_title,
meta_keywords,
meta_description,
sizefitcontainer,
designercontainer,
wearwith,
colorthumb,
colorbig,
colormedium,
discount_price,
cat_name)
VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s') ", (
context['product_title'],
context['product_description'],
context['price'],
context['currency'],
context['productCode'],
context['brand_name'],
context['colors'],
context['sizes'],
context['actual_url'],
context['title'],
context['meta_keywords'],
context['meta_description'],
context['sizefitcontainer'],
context['designercontainer'],
context['wearwith'],
context['colorthumb'],
context['colorbig'],
context['colormedium'],
context['discount_price'],
context['cat_name']))
在上面的查询中有两个字段designercontainer , and sizefitcontainer
我在其中传递一些html数据以存储在db中。
但每次我都会收到一些错误。
(<class '_mysql_exceptions.ProgrammingError'>, ProgrammingError(1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Cosmic Leggings'',''These cropped KORAL ACTIVEWEAR leggings have iridescent cont' at line 1"), <traceback object at 0x2bc2638>).
我也尝试过utf编码也无法解决这个问题。请告诉我如何编写查询,以便两个字段都可以接受html值(嵌入js和css)。
context is a python dict.
答案 0 :(得分:1)
您应该在问题中包含product_details的结构。
根据错误判断,您没有正确引用要存储的HTML字符串。
答案 1 :(得分:0)
您需要将数据作为第二个参数传递为.execute()
。
所以它会像
sql = '''insert into headline (column,column1)
values ("%s","%s","%s","%s","%s");'''
cursor.execute(sql, (values,values1))
在这里,您需要正确引用要存储到数据库中的html字符串..
您可以使用conn.escape_string()
看看here