しょぼしょぼプログラマ雑記

自分のための備忘録。 開発記録など掲載してます。 質問・ご意見・ご感想等はTwitter ( https://twitter.com/yun_hokuto ) までお気軽にどうぞ。

Objective-C用SQLiteライブラリ「FMDB」について

今回はiPhone/iPadでのSQLite用ライブラリ「FMDB」について、わかった事を記載していきます。

 

まずFMDBはこちらからDL可能

https://github.com/ccgus/fmdb

 

使い方についてはそこかしこにありますので探してください。

割愛します。

 

利用していてわかってきた事ですが、「使い方」はかなり載っていますのが、細かい仕様などについてはほとんど記載されていなかったりします。

ですのでちょっとだけ。

 

「?を使った文字列置換でのSQLを発行する際、FMDBではエスケープ処理がされるらしい」

 

どういうことかといいますと、SQLiteは文字をシングルクォートで括ります。

しかし、どのDBでもエスケープ処理が必要です。

SQLiteでのエスケープ文字は同じ文字、つまり「シングルクォート」です。

ex)「I'm gentleman.」→「I''m gentlemen.」

 

二つ重ねないとだめなのですが、FMDBではこの処理を自動でやってくれるみたいです。

細かいところまでは調査しきれていませんが、自分が試した内容では問題はありませんでした。

 

ただし、これには落とし穴もあります。

 

「NSStringのstringWithFormatで文字列置換する際はエスケープ処理されない」みたいです。

「みたい」と記載したのは、そのような記事を見かけたからです。

主に「LIKE文」で起こる事象みたいです。

 

というわけで、FMDBのちょっとしたTipsでした。