【发布时间】:2021-09-22 16:09:53
【问题描述】:
我正在创建 NVD 托管漏洞文件的本地镜像。
我的代码当前正在连接到数据库,运行检查以提取当前文件,然后继续循环浏览这些文件,以查看 .json 文件中是否每天都有新的 CVE 数据。
今天早上,当我的代码循环通过单个 CVE 数据的更新检查时,我开始收到以下错误。
_mysql_connector.MySQLInterfaceError: 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“WHERE ID = 'CVE-2014-4611'' 附近使用正确的语法。
在处理上述异常的过程中,又发生了一个异常:
Traceback(最近一次调用最后一次): 文件“c....2_add_cvestodb.py”,第 134 行,在 mycursor.execute(sql_update_query, val_update_query)
下面是有问题的代码块。
if newtimesplit > oldtimesplit :
print("It's newer!")
sql_update_query = ("UPDATE vulns set Assigner = %s, Reference1 = %s, Reference2 = %s, Reference3 = %s, Description = %s, impactBaseScore = %s, LastModifiedDate = %s, baseSeverity = %s, cveTimeStamp = %s, WHERE ID = %s")
val_update_query = (Assigner, Reference1, Reference2, Reference3, Description, impactBaseScore, LastModifiedDate, baseSeverity, cveTimeStamp, ID)
mycursor.execute(sql_update_query, val_update_query)
mydb.commit()
updateCtr +=1
存在问题的 .json 键值片段:
{
"cve" : {
"data_type" : "CVE",
"data_format" : "MITRE",
"data_version" : "4.0",
"CVE_data_meta" : {
"ID" : "CVE-2014-4611",
"ASSIGNER" : "cve@mitre.org"
},
任何建议都将不胜感激 - 我已经搜索并找不到解决方案。
【问题讨论】:
标签: python mysql syntax-error