Unityのアセット SimpleSQL でのクエリー内文字化け

2015年9月16日水曜日

unity

SimpleSQLはunityのアセットで簡単にSQLが扱えるので重宝しているのですが、
クエリーを出すときに日本語が入ると文字化けして困ってました。

string sql = "SELECT * FROM hoge WHERE 'hogenamae' = 'なにか'";
List hogesan = dbManager.Query(sql);

エラー(意訳:文字化けしてるからだめ)
SQLiteException: unrecognized token: "'ここに文字化け分が入る"
SimpleSQL.SQLite3.Prepare2 (IntPtr db, System.String query
....
....


で、いろいろやってたら、SQL文を作って渡すんじゃなくて、
パラメーターで渡せばいいみたいです。

string sql = "SELECT * FROM hoge WHERE hogenamae = ?";
List hogesan = dbManager.Query(sql,"なにか");