Flask执行提交时报错数据库问题

遇到问题

在书籍管理系统进行更新数据库操作时,前端数据回显正常,但更新内容提交时报错

产生原因

数据库报错提示“找不到对应列[name]”是因为SQL语句在拼接时直接将变量name的值如“张三”当作列名来处理了,而不是作为要更新的数据值。在SQL中,字符串值需要用引号(单引号或双引号,具体取决于数据库系统)括起来。

解决办法

使用占位符占位,然后通过使用cursor执行参数化查询

并且直接使用字符串格式化(如f-string)来构建SQL语句是不安全的,因为它容易受到SQL注入攻击。所以应该使用参数化查询来避免这种风险,尽量避免使用拼接字符串方式来写SQL语句。