PythonでMySQLのエスケープ
PythonでMySQLを使うとき必ずと言っていいほど文字コードに悩まされます。
以前起きたUnicodeErrorはMySQLdb.connector()
のメソッドでcharset='utf8'を引数に渡せば解決する類のものでした。
今回のUnicodeErrorはテキストを挿入したときに起きたもので、
シングルクォーテーションを含むテキストでエラーが起きていました。
このようなエラーを素早く発見するためには、
デバッグ用にこまめに発行したSQLなどを表示させると良いです。
さて問題がわかったところでPythonでMySQLのエスケープに入ります。
やり方は簡単で、、
MySQLdb.escape_string(string)
これだけでエスケープしてくれます。
ただ注意点として、引数のstringはstr型でないといけないので、
もしunicode等を使っている場合はきちんと型を変換しなければなりません。