我使用 VSCode 工作,使用 Python 编写代码。我在OpenServer 6.0.0中启用了Mysql的查询日志对数据库本身的查询是正确的。 SELECT 也有效。但数据库没有更新。如果您从日志中复制此请求并在 Phpmyadmin 中手动执行它,则一切正常。我尝试重新启动 PC、VSCode 和 Openserver,但在 TEXT 类型的字段中更新没有帮助,数据 - json.dumps(dict) 可能导致此问题的原因是什么?
请求在这里被收集并执行。我想也许在这个方法的某个地方有一个额外的引号被放置在某个地方并且Openserver不会在日志中显示它
def update(self, table:str, data: dict, where: str):
"""
Обновить запись
"""
_query = str()
for k, v in data.items():
if isinstance(v, str):
_query += f"`{k}`='{v}'"
elif isinstance(v, (dict, list)):
_query += f"`{k}`='{json.dumps(v, ensure_ascii=False)}'"
else:
_query += f"`{k}`={str(v)}"
_query += ','
_query = _query[:-1]
query = f"UPDATE {table} SET {_query} WHERE {where}"
self.query(query)
self._cursor.close()
这个错误是由于我自己缺乏远见造成的。检查 SELECT 查询是这样的
而不是
并且在查询中有一个名为 select 的变量,这就是未进行提交的原因...谢谢