为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我收到 MySQL 语法错误?

为什么我收到 MySQL 语法错误?

慕少森 2022-06-22 17:57:46
请帮帮我。我正在编写一个 cdr avaya 日志解析器,将数据写入 mysql 数据库。解析器本身工作正常,但它不写入数据库。程序本身是用python 3.7编写的,分为2个文件。cdr.py 解析器本身和 db.py 数据库记录文件。它会产生这样的错误:pymysql.err.ProgrammingError: (1064, "您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,了解在 '-dur, in-trk-code, in-crt- 附近使用的正确语法id, 代码使用, out-crt-id, clg-num-in-tag, dialed-num,' 在第 1 行")所有表字段均为 INT 类型,可以写入 NULL。cdr.pyimport socketimport db # Задаем адрес сервераSERVER_ADDRESS = ('', 5100)# Настраиваем сокетserver_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)server_socket.bind(SERVER_ADDRESS)server_socket.listen(5)print('server is running, please, press ctrl+c to stop')# Слушаем запросыwhile True:    connection, address = server_socket.accept()    data = connection.recv(1024)    if not(b'\x00\x00\x00' in data):        str = data.decode("utf-8")        item=(str[0:6],str[7:11],str[12:17],str[18:22],str[23:26],str[27:30],str[31:34],str[35:50],str[51:74],str[75:76],str[77:90],str[91:92])        print(item)        db.write_db(item)    connection.close()db.pyimport pymysql.cursorsdef write_db(item, *agrs):    connection = pymysql.connect(host='localhost',                                 user='acdr',                                 password='it8ejokd',                                 db='avaya_cdr',                                 charset='utf8mb4',                                 cursorclass=pymysql.cursors.DictCursor)    DBTBL = "cdr102019"    DBFLD = "Date, Time, Sec-dur, in-trk-code, in-crt-id, code-used, out-crt-id, clg-num-in-tag, dialed-num, cond-code, vdn, frl"    try:        with connection.cursor() as cursor:            sql = "INSERT INTO "+DBTBL+" ("+DBFLD+") VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"            cursor.execute(sql, (item))        connection.commit()    finally:        connection.close()
查看完整描述

1 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

您需要在包含-.

DBFLD = "Date, Time, `Sec-dur`, `in-trk-code`, `in-crt-id`, `code-used`, `out-crt-id`, `clg-num-in-tag`, `dialed-num`, `cond-code`, vdn, frl"

有关更多详细信息,请参阅MySQL 中何时使用单引号、双引号和反引号


查看完整回答
反对 回复 2022-06-22
  • 1 回答
  • 0 关注
  • 494 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号