2010-12-27 24 views
2

私はSQLiteデータベースを使用するiPhoneアプリケーションで作業していますが、エスケープ文字を処理しようとしています。 SELECTステートメントでエスケープ文字を処理するLIKE ESCAPEがあることは知っていますが、私のアプリケーションではSELECT、INSERT、UPDATEのアクションがあり、エスケープ文字の処理方法はわかりません。文字をエスケープするためにsqliteプリペアドステートメントを使用する代わりに、

+0

のですか?答えがある場合は、グレーのチェックマークをクリックして受け入れてください。 –

答えて

2

FMDBを使用すると、そうする必要はありません。それはbuilt-in parameter binding supportを持っており、それはあなたのために必要なエスケープの世話をします。

+1

具体的に言うと、FMDBのパラメータバインド機能を使用する必要があります。 – makdad

+0

@phoozeはい、それは私の言いたいことです。 :) –

+0

私はsqlcipher sooと一緒にsqliteを使用していますが、FMDBは提案に感謝の意を表しますが、次回はアプリを開発するときに使用します。 – seelani

0

SQLステートメントの終わりにエスケープ文字が何であるかをSQLiteに伝える必要があると思います。たとえば:

SELECT * FROM MyTable WHERE RevenueChange LIKE '%0\%' ESCAPE '\' 

LIKEは、など30%140%、などの値Iが使用される文字、\にマッチします、何でもかまいません。

+0

これにはINSERT文とUPDATE文も含まれていますか? – seelani

+0

はい、どこにでも使用できます。 –

3

あなたは%qをトークン

sqlite3_mprintf("%q","it's example"); 
でsqlite3_exec()オールインワン機能、 あなたはsqlite3_bind *関数を使用する必要がいけない... がちょうど sqlite3_mprintfに文字列を渡す()を使用している場合、

と出力文字列は、これらの答えのいずれかがあなたのために働くんでした

it''s example 
関連する問題