【发布时间】:2014-03-23 07:44:24
【问题描述】:
一个数据库中的表有30个字段,当我向表中写入一些数据时,如何处理插入字符串中的??
many="? ,"*30
many=many[0:-1]
db_str='INSERT INTO the_table VALUES (' + many + ');'
con.executemany(db_str, data)
db_str 很难让人用,我怎样才能让代码看起来很好。
【问题讨论】:
标签: python
一个数据库中的表有30个字段,当我向表中写入一些数据时,如何处理插入字符串中的??
many="? ,"*30
many=many[0:-1]
db_str='INSERT INTO the_table VALUES (' + many + ');'
con.executemany(db_str, data)
db_str 很难让人用,我怎样才能让代码看起来很好。
【问题讨论】:
标签: python
我认为更简洁的方法可能是使用join:
parameters = ", ".join(["?"] * 30)
query = 'INSERT INTO the_table VALUES(%s);' % parameters
con.executemany(query, data)
【讨论】:
%s 直接将用户输入的数据插入到查询中当然是不安全的,并且会让您对SQL 注入开放,但这里%s 仅用于将参数占位符插入到查询中。这基本上是使用+ 进行字符串连接的更简洁的替代方案。
data 仍在准备中。