我使用的是python3.6mysql 8和mysql Python connector 8
我试图插入下表| Recipes_id| title| Prep_time| servings | Summarize| Very_healthy| Cuisine| img| source_url|
+-----------+------+----------+---------+----------+--------------+--------+----+-----------+
使用一个对键命名不同的字典。
例如字典的一个示例对象:
^{pr2}$
这里,id键与表中的recipe_id列名不同。
MySQL查询如下:Recipes_INSERT_SQL = (
"INSERT INTO recipes "
"(Recipes_id, title, Prep_time, servings, Summarize, Very_healthy, Cuisine, Img, Source_url) "
"VALUES ( %(id)s, %(title)s, %(prep_time)s, %(servings)s, %(summarize)s, %(very_healthy)s, %(cuisine)s, %(img)s, %(source_url)s )"
)
cursor.execute(Recipes_INSERT_SQL, recipes_data)
注意字典键与列名不同
但错误是:ProgrammingError(1064, "1064 (42000): 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 '%(id)s,
%(title)s, %(prep_time)s, %(serving)s, %(summarize)s, %(very_healthy)s, ' at line 1",
'42000')
如您所见,引擎甚至没有解析(标题)和其他名称。
我是否遗漏了什么?mysql 8的占位符约定为%(name)s,如文档中所述。
以下是sql层次结构和配方表: