“%s”%格式与“ {0}”。format()与“?” 格式

【字号: 日期:2024-03-07浏览:22作者:雯心
如何解决“%s”%格式与“ {0}”。format()与“?” 格式?

“attach '%s' as toMerge” % “b.db”

您应该使用’而不是',这样就不必逃脱。

您使用了不建议使用的旧格式字符串。

’attach '{0}' as toMerge’.format('b.db')

这将使用来自较新Python版本的新格式字符串功能,如果可能的话,应使用旧版本而不是旧版本。

'attach ? as toMerge'; cursor.execute(cmd, (’b.db’, ))

该代码完全省略了字符串格式,而是使用了sqlite功能,因此这是正确的方法。

最大优势:无sql注入风险

解决方法

在有关SQLite的)这篇文章中,aaronasterling告诉我

cmd = 'attach '%s' as toMerge' % 'b.db' : 是错的cmd = ’attach '{0}' as toMerge’.format('b.db') : 是正确的cmd = 'attach ? as toMerge'; cursor.execute(cmd,(’b.db’,)) :是对的

但是,我认为第一和第二是相同的。这三个之间有什么区别?

相关文章: