2016-11-09 58 views
-2

在这里,我想插入一个名字到第页。 有时候,这个名字并不像下面的图片那样规则。 http://ob9j09f06.bkt.clouddn.com/2016-11-09-22%3A58%3A19.jpg如何插入'到postgres?

如何将此数据更新为db?

+0

尝试转义'''字符,如'Afanas \'ev ...' – Selcuk

+7

通过不使用字符串操作并使用查询参数来代替。 –

+3

如果你有这个错误,你也会遇到其他一些影响安全性的错误。如果你只是在立即症状的基础上工作,而不是修复导致它的实践,那么你......好......只是修复症状。始终,始终始终保持代码和数据彼此带外,并记住[Bobby Tables](https://xkcd.com/327/)。 –

回答

4

您应该使用查询参数。 SQLite中,你会做这样的事情:

sql_insert = 'INSERT INTO articles VALUES(?, ?)' 
to_db = [authors, link] 
curs.execute(sql_insert, to_db) 

或更新:

sql_update = 'UPDATE articles SET authors = ? WHERE link = ?' 
to_db = [authors, link] 
curs.execute(sql_update, to_db) 

to_db是不是使用字符串操作到%S作为@Colonel的评论,你传递的参数列表,三十二条建议。

+0

使用psycopg2 DB-API模块(OP正在使用),paramstyle是'pyformat',所以不是'?'它是占位符'%s' - 但仍然将参数传递出来而不是用它们代替。 –

+2

[相关文档](http://initd.org/psycopg/docs/usage.html#query-parameters)值得链接。 –

+0

非常感谢。 –