Java 使用';在sqlite中
我对sqlite有问题。在我的应用程序中,我通过语音识别来编辑文本,然后将该字符串存储在sqlite中。 它的工作非常好,问题是当我试图说“不要”这样的词并试图将其保存到sqlite时,应用程序崩溃是因为它对sqlite的验证。 有解决办法吗 这是语音识别的on活动结果:Java 使用';在sqlite中,java,android,sqlite,Java,Android,Sqlite,我对sqlite有问题。在我的应用程序中,我通过语音识别来编辑文本,然后将该字符串存储在sqlite中。 它的工作非常好,问题是当我试图说“不要”这样的词并试图将其保存到sqlite时,应用程序崩溃是因为它对sqlite的验证。 有解决办法吗 这是语音识别的on活动结果: protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(reques
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQ_CODE_TAG_INPUT: {
if (resultCode == RESULT_OK && null != data) {
ArrayList<String> result = data
.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
if (!result.get(0).equals("delete all")) {
et1.setText(et1.getText().toString() + " " + result.get(0));
} else {
et1.setText("");
}
}
break;
}
这是一个例外:
原因:android.database.sqlite.SQLiteException:near“t”:编译时语法错误(代码1):插入注释值('No Tag'、'don't'、'28/11/2014'、-133663026
谢谢您的帮助!!您只需将翻一番即可
例如:
不要
类似于:
des=des.replace(“”,“”);
或者,更好的是,您可以在SQL命令中使用绑定参数。像这样: 绑定参数阻止您的代码进行SQL注入,并为您执行自动类型转换。
不仅如此:绑定参数还将阻止所有这些字符串连接,这是一个性能吸盘。[此处回答][1]一直以来都是绑定参数。而且这么多的字符串连接对性能影响很大。是的。字符串连接是一个蜗牛。编辑我的答案来添加你的观察结果。哦,你用绑定参数的想法救了我!!谢谢很多人!!(替换对我不起作用)因此,您可以接受我的回答,以便将您的问题从未回答问题队列中删除。无论如何,很高兴我能帮助您。
if (!et1.getText().toString().equals("")
&& !et2.getText().toString().equals("")) {
tag = et1.getText().toString();
des = et2.getText().toString();
Notes.getInstance().getmNotes()
.add(new MyNote(tag, des, date, 1, id));
MyOH oh = new MyOH(getApplicationContext());
mDb = oh.getWritableDatabase();
if (MainActivity.state == 1) {
mDb.execSQL("UPDATE note SET tag='" + tag + "',des='" + des
+ "',time='" + date + "',noteid=" + id
+ " WHERE noteid = " + id);
} else {
mDb.execSQL("INSERT INTO note VALUES ('" + tag + "','" + des
+ "','" + date + "'," + id + ")");
}
if (MainActivity.state == 1)
{
mDb.execSQL("UPDATE note SET tag = ?, des = ?, time = ?, noteid = ? WHERE noteid = ?", new String[]{tag, des, date, id, id});
}
else
{
mDb.execSQL("INSERT INTO note (tag, des, time, noteid) VALUES (?, ?, ?, ?)", new String[]{tag, des, date, id});
}