0

以下のコードでは、linkを検索してauthorsを挿入します。このデータをpythonでpostgresqlに挿入するにはどうすればいいですか?

self.cur.execute(""" 
    UPDATE articles 
    SET authors = %s 
    WHERE link = %s returning id; 
""" % (authors, link)) 
ret_id = self.cur.fetchone() 

そして、二つの問題が発生した:

  1. いくつかの名前は、このように定期的ではありません。

    LINE 1: UPDATE articles SET authors = Francesco D'Angelo, Roberto T... 
    
  2. 著者名は問題ありません:

    """UPDATE articles SET authors = %s WHERE link = %s returning id;""" % (authors, link)) 
    psycopg2.ProgrammingError: syntax error at or near ":" 
    LINE 1: ...DATE articles SET authors = test WHERE link = http://www.wor... 
    

答えて

1

あなたはSQLを使用している場合に、ドライバが適切なエスケープをやらせる、%であなたの文字列をフォーマットしない:私は2番目の引数、executeとしてデータを渡さ

self.cur.execute(
    """UPDATE articles SET authors = %s WHERE link = %s returning id;""", (authors, link)) 

通知は、データをエスケープの世話をします正しく。

関連する問題