White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

MySQLdbに手を焼いた

Macでやってたんだけど以下の点で苦労した

  1. 文字コード問題(laten1->utf-8)
  2. プレースホルダ問題(?→%s)
  3. SQLiteとのdbAPIの互換の無さ
  4. ググっても資料になかなかたどり着けない

11/26追記した

1

/etc/my.cnfを管理者権限で作って編集する
http://melanges.duck.nu/2006/04/20_121309.phpの2.3.1/2.3.2参照
上記サイトから転載

# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

# vi /etc/my.cnf
[client]
default-character-set = utf8

[mysqld]
default-character-set = utf8
skip-character-set-client-handshake

[mysqldump]
default-character-set = utf8

[mysql]
default-character-set = utf8

2

どうもSQL?の実行時にselect関数を実行する時、

dbase.execute("insert into hoge(foo,bar) values(?,?)",
[a,b])

っていう風に?をプレースホルダとして使うとエラーになる

?じゃなくて%sとか使うとうまくいく

3

2の問題、SQLiteAPIだと通るはず。
他にもcur.con.executeがcur.executeだったりとか。DBAPIとして統一してないんじゃないのかと疑いたくなる。

4

python mysql」とか「python mysqldb」とかでググってもすぐに解が出てこない。Google精度低すぎだろ。