2011-09-24 37 views
8

Pythonとmysql.connectorを使用してmysqlに文字列を挿入しようとしています。現在のコードは次のようになります。Pythonで文字列をエスケープするmysql.connector

db = mysql.connector.Connect('config blah blah') 
cursor = db.cursor() 
data = (somestring1, somestring2) 
sql = "INSERT INTO mytable (col1, col2) VALUES ('%s', '%s')" 
cursor.execute(sql, data) 

文字列をエスケープするにはどうすればよいですか?私はすることができますpythonでそれをやってみてくださいが、これは方法ではないことを知っている。

注:mysql.connectorはまだ開発中です。

更新:

4行は次のようになります。

sql = "INSERT INTO mytable (col1, col2) VALUES (%s, %s)" 

答えて

7

をmysql.connectorに準拠DB API v2.0あるので、あなた自身が、それはあなたのために自動的にそれをしないデータをエスケープする必要はありません。

+0

感謝。私は実際に私のサンプルコードを正しくタイプしました。私は自分の問題を示すためにそれを編集しました。 –

+0

1000(10,000、1,000,000)の値を含むinsert文を生成する必要がある場合は、 '%s'でハードコードする必要がありますか?例えば、外部ソース(ファイル、HTTPリクエスト)から読み込んだ場合、「自動エスケープ」を使用する方法など、挿入する必要のある値の量がわからない場合はどうすればよいでしょうか? – Vitaliy

6

infraredの回答が最善の方法です。

しかし、あなたが実際にいくつかの任意の文字列をエスケープする必要がある場合、あなたはこれを行うことができます。

db = mysql.connector.connect(......) 

new_str = db.converter.escape('string to be escaped') 
関連する問題