0

我有下表

db.queries
| id        | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| name      | varchar(256)     | NO   |     |         |                |
| sql       | text             | NO   |     | NULL    |                |
| frequency | int(10) unsigned | NO   |     | 86400   |                |

我正在使用 MySQLdb python 工具插入标记的值、名称sql 查询。

cur.execute("insert into db.queries (name, sql, frequency) values ('{0}', '{1}', {2})".format('some query', 'Select a query', 86400)

我以前用过 MySQL 和 MySQLdb 很多次,从来没有遇到过这些问题。

我不断得到的错误如下:

_mysql_exceptions.ProgrammingError: (1064, "您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在 'sql, frequency) 值附近使用的正确语法('MY NAME', 'Select count( *) 如'在第 1 行")

我很感激任何帮助。

4

2 回答 2

5

sql是 MySQL 中的保留字,你需要把它放在反引号中:

cur.execute("insert into db.queries (name, `sql`, frequency) values ('{0}', '{1}', {2})".format('some query', 'Select a query', 86400)
于 2013-10-28T16:26:43.843 回答
1

sql是 MySQL 中的保留字。把它放在反引号中,像这样:

cur.execute("insert into db.queries (name, `sql`, frequency) values ('{0}', '{1}', {2})".format('some query', 'Select a query', 86400)
于 2013-10-28T16:28:31.980 回答