2016-03-23 4 views
0

私はフレックスアクションスクリプトプロジェクトに取り組んでいます。ここでは、私が応答したsqliteデータベースにレコードを保存/挿入しようとしています。Sqliteのインサートで文法エラーが発生する

ただし、レコードの一部のレコードはテーブルに挿入されません。私はエラーをキャッチすると、SQLエラーが発生します。

近くに '/':構文エラー

応答では、私は、全体のHTMLマークアップを持っています。私もその逆'との代わりに"を変更しようとしている

var insert:SQLStatement = new SQLStatement(); 
insert.sqlConnection = sqlConnectionSync; 
insert.text = 'INSERT OR IGNORE INTO TableName (MessageID, AccountID, Body) VALUES ("' + listArray[i].MessageID + '","' + listArray[i].AccountID + '","' + listArray[i].Body + '")'; 
insert.execute(); 

私は次のように内部for loopクエリを実行/書かれています。

しかし、それは'

エラー#3115の他のエラー与える:SQLエラー。

近くっ ':構文エラーの近くに

そして

は '_blank':構文エラー

すべてのヘルプは大歓迎です。

答えて

2

このような問題を回避するには、あなたがこのようSQLStatement.parametersプロパティを使用することができます:データベースにそれらを挿入する前に、私はあなたの例から「切り替え」としている

var insert:SQLStatement = new SQLStatement(); 

    insert.text = 'INSERT OR IGNORE INTO TableName (MessageID, AccountID, Body) VALUES (:param1, :param2, :param3)'; 

    insert.parameters[':param1'] = listArray[i].MessageID; 
    insert.parameters[':param2'] = listArray[i].AccountID; 
    insert.parameters[':param3'] = listArray[i].Body; 

    insert.execute(); 

願ってすることができます助けて。

+0

恐ろしい男。どうもありがとうございました。 – ketan

+0

この問題の解決方法を教えていただけますか? http://stackoverflow.com/questions/37725499/datagrid-itemrenderer-getting-issue-while-scroll – ketan

0

完全なクエリをテキストとして投稿すると、データに「または」の文字が含まれている可能性が高くなります(たとえば、... =「_空白」または「そうです)」。)変数値をエスケープする必要があります。例えば、

insert.text = "INSERT OR IGNORE INTO TableName (MessageID, AccountID, Body) VALUES ('" + escapeChars(listArray[i].MessageID) + "','" + escapeChars(listArray[i].AccountID) + "','" + escapeChars(listArray[i].Body) + "')"; 

private function escapeChars(myString:String):String 
{ 
    // Since we are using "'" we'd need to escape all other "'" characters 
    return myString.replace(/'/gi, "\'"); 
}