В txtnombre.getText()
: '4 madhab bid'at tavassul'
есть одна цитата.Это приводит к тому, что SQLite ошибочно считает, что эта кавычка обозначает конец первого значения для вставки.
Чтобы избежать этого, вы можете вручную удвоить одинарные кавычки:
db.execSQL(
"INSERT INTO Favorite VALUES('"
+ txtnombre.getText().replaceAll("'","\''")
+ "', '"
+ txtlink2.getText().replaceAll("'","\''")
+"' );"
);
Я бы порекомендовалиспользуя параметры привязки.С помощью этой опции ваш драйвер базы данных обрабатывает выход из-за пределов:
q = "INSERT INTO Favorite VALUES(?, ?)";
t1 = txtnombre.getText();
t2 = txtlink2.getText();
db.rawQuery(q, new String[] { t1, t2 });
Наконец, другой подход в Android будет состоять в том, чтобы использовать собственный метод sqlEscapeString()
, который в первую очередь создан для этого.цель.
Кроме того, как прокомментировал pskink, использование insert () будет лучше соответствовать вашему варианту использования, чем необработанный SQL.