如何在Python中向MySQL表插入可变列数的数据?
我有一个变量 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语句。