遇到问题
在书籍管理系统进行更新数据库操作时,前端数据回显正常,但更新内容提交时报错
产生原因
数据库报错提示“找不到对应列[name]”是因为SQL语句在拼接时直接将变量name
的值如“张三”当作列名来处理了,而不是作为要更新的数据值。在SQL中,字符串值需要用引号(单引号或双引号,具体取决于数据库系统)括起来。
解决办法
使用占位符占位,然后通过使用cursor执行参数化查询
并且直接使用字符串格式化(如f-string
)来构建SQL语句是不安全的,因为它容易受到SQL注入攻击。所以应该使用参数化查询来避免这种风险,尽量避免使用拼接字符串方式来写SQL语句。