Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android.database.sqlite.SQLiteException:无法识别的令牌:_Android_Database_Sqlite - Fatal编程技术网

android.database.sqlite.SQLiteException:无法识别的令牌:

android.database.sqlite.SQLiteException:无法识别的令牌:,android,database,sqlite,Android,Database,Sqlite,我尝试更新数据库表,这是我的代码: public void updatefiletable(String filename, String v1, String v2){ AndroidOpenDbHelper androidOpenDbHelperObj = new AndroidOpenDbHelper(this); SQLiteDatabase sqliteDatabase = androidOpenDbHelperObj.getWritableDatabase(); Con

我尝试更新数据库表,这是我的代码:

public void updatefiletable(String filename, String v1, String v2){
  AndroidOpenDbHelper androidOpenDbHelperObj = new AndroidOpenDbHelper(this);
  SQLiteDatabase sqliteDatabase = androidOpenDbHelperObj.getWritableDatabase();

  ContentValues values = new ContentValues();
  values.put(AndroidOpenDbHelper.COLLUMN_NAME_FILE_CLOUD, v1);
  values.put(AndroidOpenDbHelper.COLLUMN_NAME_FILE_DATE_UPLOADING, v2);
  sqliteDatabase.update(AndroidOpenDbHelper.TABLE_FILE, values, AndroidOpenDbHelper.COLUMN_NAME_FILE_NAME+"="+filename, null);

  sqliteDatabase.close();    
}
当我用file_name值egal priv_priv_secondfile_2012-06-15.pdf调用我的方法时,我在logcat中得到:

android.database.sqlite.SQLiteException: unrecognized token: "15.pdf": ,
while compiling: UPDATE file_table SET file_cloud_column=?, 
file_date_upload_column=? 
WHERE file_name_column=priv_priv_secondfile_2012-06-15.pdf

如何修复它?

您需要转义filename参数。文件名中的标点符号容易混淆SQLite。您可以通过在传递给SQLite的字符串中围绕
“单引号”
中的文件名来实现这一点,但将其作为单独的参数传递会更简洁、更安全,如下所示:

sqliteDatabase.update(AndroidOpenDbHelper.TABLE_文件,值,
AndroidPendbHelper.COLUMN_NAME_FILE_NAME+“=?”,新字符串[]{filename});