SQLITE存储时间数据报警语法错误,syntax error

使用sqllite数据库,有一个时间数据current_time需要插入表中,如下

current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

不能直接将时间戳格式化为字符串并嵌入到SQL语句中,如下:


 sql = f"INSERT INTO working_table (device_name,value,isChange,date_time) VALUES ('UBS', 88.8, 0, {current_time})"

cursor.execute(sql)

这样会导致SQL注入漏洞,尤其是如果 current_time包含任何特殊字符的话,就会报语法错误

解决办法如下:

 sql = f"INSERT INTO working_table (device_name,value,isChange,date_time) VALUES (?, ?, ?, ?)"

cursor.execute(sql,('UBS', 88.8, 0, {current_time}))

   

上一篇:SheetJS V0.17.5 导入 Excel 异常修复 Invalid HTML:could not find<table>


下一篇:servlet