如何在Python中向MySQL表插入可变列数的数据?

0 投票
1 回答
781 浏览
提问于 2025-04-16 07:59

我有一个变量 row_data = (searchindex, asin, title, browsenode, salesrank, brand, listprice, saleprice),这个变量里的某些元素可能会是 NULL(也就是没有值)。为了把这些数据插入到数据库里,我使用了

sql = "INSERT INTO table (searchindex,asin,title,browsenode, salesrank, brand, listprice, saleprice) VALUES ('%s','%s','%s','%s', '%s', '%s', '%f', '%f')" % row_data

但是这样做不太灵活,因为如果我想在 row_data 中添加更多的字段,就会变得很麻烦。有没有更有效的方法来处理这个问题呢?

谢谢!

1 个回答

3

请不要用字符串插值来构建SQL语句,这样做非常不安全。应该使用你MySQL库中合适的功能,把值作为参数传递给查询。

一个表中的列数在你开发程序的过程中应该很少变化。可能几个月才会改动一次,这时候更新你的SQL语句通常也不难。

另外,你可以使用像SQLAlchemy这样的系统,它可以帮你处理很多事情,让你不需要自己写太多SQL语句。

撰写回答