【发布时间】:2019-05-22 16:54:56
【问题描述】:
You have an error in your SQL syntax 上有几个问题 - 但它们似乎都解决了查询中的特定语法错误,这通常对其他人没有帮助。
我的问题是如何从 Python 中的 MySQL 命令获取格式化查询,以便实际检查它?
所以我有这样的声明:
cursor.execute("INSERT INTO products(acc, title, sku, price, price_checked, desc, imgs) VALUES (%s,%s,%s,%s,%s,%s,%s)", (1, prod.title, prod.sku, prod.price, datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), prod.desc, prod.imgs))
错误是:
_mysql_exceptions.ProgrammingError: (1064, "您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册以获取正确的语法以使用 n ear 'desc, imgs) VALUES (1,'Holy Stone HS700 FPV Drone with 1080p HD Camera Live Vide' at line 1")
知道如何获得执行的查询吗?我不想自己格式化查询然后在执行之前打印它,而是主要出于安全原因使用 MySQL 的内置格式化。
【问题讨论】:
-
不确定您的问题。但是如果你想格式化查询试试dpriver.com/pp/sqlformat.htm,如果你想调试查询为什么不直接在mysql上测试呢?
-
这不是引发错误的查询吗?它在谈论
desc,所以大概是一个 SELECT 查询。这是一个 INSERT,不包括 DESC -
@roganjosh 是的,它确实包括 desc。这是倒数第二个论点。你看到了吗?
-
首先尝试用引号将文本数据括起来。
-
@AndreiOdegov 日期时间也是?