2012-01-12 10 views

答えて

2

あなたは正しい軌跡にありますが、このようになります。

id, provider_id, title = row[0], row[2], row[4] 
cursor.execute("INSERT INTO vendor_id VALUES (%s, %s, %s)", id, provider_id, title) 

python SQLデータベースAPIは、自動的に無効にし、変数のエスケープと引用の改訂を求めます。文字列書式演算子は不要であり、この場合は変数引用の書式設定は行いません。変数の最終的な配列を好きなようにフォーマットすることができます。あなたのように%演算子を使わないでください。私が正しいだ場合、注射があまりにも動作するはず

cursor.execute("INSERT INTO vendor_id VALUES (%s, %s, %s)", (id, provider_id, title)) 
cursor.execute("INSERT INTO vendor_id VALUES (?, ?, ?)", (id, provider_id, title)) 

を発生しないことができるように、この理由は、変数がバインドされ、テキストにフォーマットされていないということです。