I'm having trouble inserting records into my sqlite database. This is how I create the database:
var db = Ti.Database.open('mydb'); db.execute('create table if not exists favorieten2 (pk integer primary key autoincrement, artikel_id integer null, artikel_titel text null, artikel_tekst text null, artikel_foto text null)');And this is the query I'm trying to execute:
insert into favorieten2(artikel_id, artikel_titel, artikel_tekst, artikel_foto) values (134,'Laatste campagnedag in Frankrijk ','Vandaag is het de laatste dag voor de beslissende ronde in de Franse presidentsverkiezingen. De socialist Fran\U00e7ois Hollande beschikt nog altijd over de beste papieren: op dit moment heeft hij zo''n 5 procent voorsprong op Nicolas Sarkozy. Gisteren was de allerlaatste campagnedag. Beide kandidaten zijn tot op de laatste minuut blijven vechten voor elke stem.','img/fotos-artikels/Schermafbeelding 2012-05-15 om 18.54.03.png')Which is generated and executed by this function
function insertFavorite(id, title, text, image) { var sql = "insert into favorieten2(artikel_id, artikel_titel, artikel_tekst, artikel_foto) values ("; sql += "" + id + ","; sql += "'" + title.replace("'", "''") + "',"; sql += "'" + text.replace("'", "''") + "',"; sql += "'" + image.replace("'", "''") + "')"; db.execute(sql); }
2 Answers
Accepted Answer
Try
var sql = "INSERT .. VALUES(?, ?, ...)"; db.execute(sql, id, title, ...);
SQL statement is illegal due to this part: zo''n
You can escape string values with this function:
function escape (value) { if (value && typeof value.replace == "function") { return value.replace(/'/g, "''"); } else { return value; } };
Your Answer
Think you can help? Login to answer this question!