python - 将行插入 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 因为它是一个关键字,但这并没有解决问题。我怎样才能解决这个问题?
谢谢!
解决方案
您还可以使用当前时间戳的默认列创建表:
create table search (
keyword...,
date_add TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
...)
然后你可以在不提及 date_add 列的情况下执行,它将是当前时间戳。
推荐阅读
- javascript - 用户输入的有偏硬币翻转
- vue.js - 数据在vue控制台显示但不返回网页
- java - java.desktop 无法解析为模块
- javascript - go中的编码可执行文件和javascript中的解码不起作用
- c - 在文件中写入(),单词出现两次
- c++ - 收到谷歌 protobuf 消息但未正确解析
- flutter - 当appbar背景更改为白色时如何更改时间和电话图标(如wifi颜色)
- node.js - 是否可以将 Angular 组件导出为 js 并在旧版网页中用作脚本?
- python - Sanic OpenAPI Swagger 文档生成抛出属性路径 operationId 重复
- hive - 蜂巢倾斜连接问题