首页 > 解决方案 > 将行插入 MySQL 表时出现 pymysql.err.ProgrammingError 错误(使用 Python、Flask、ClearDB)

问题描述

我看过很多关于这个的帖子,但我无法解决这个问题。我正在将我的数据库从 SQLite 转换为 MySQL,并且在将值插入表时遇到问题。在此语句中,关键字和 sortType 是传递到方法中且未修改的变量。keyword、type_search 和 sort 属于 TEXT 类型,而 date_add 属于 DATE 类型。

conn = mysql.connect() 
cursor = conn.cursor() 
cursor.execute('INSERT INTO search (keyword, date_add, type_search, sort) VALUES (%s, date(), %s, %s)', (keyword, 'value', sortType))
conn.commit()

错误:

pymysql.err.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 '), 'value', 'views_week')' at line 1")

我将 date 更改为 date_add 因为它是一个关键字,但这并没有解决问题。我怎样才能解决这个问题?

谢谢!

标签: pythonmysqlsql

解决方案


您还可以使用当前时间戳的默认列创建表:

create table search (
keyword...,
date_add TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
...)

然后你可以在不提及 date_add 列的情况下执行,它将是当前时间戳。


推荐阅读