SQLite - Is it possible to insert a BLOB via insert statement? SQLite - Is it possible to insert a BLOB via insert statement? sqlite sqlite

SQLite - Is it possible to insert a BLOB via insert statement?


If you really, really want to you can use a very long hex literal as a blob literal:

insert into memes(img, name) values(X'0102030405060708090a0b0c0d0e0f', '1.jpg')

However, this is usually a bad idea; instead, go look at parameterised queries. They will let you compile a statement once using placeholders instead of actual values, and then reuse it many times, filling in the placeholders as needed:

SQLiteStatement p = sqlite.compileStatement("insert into memes(img, name) values(?, ?)");byte[] data = loadData("1.jpg");p.bindBlob(1, data);p.bindString(2, "1.jpg");p.execute();byte[] data = loadData("2.jpg");p.bindBlob(1, data);p.bindString(2, "2.jpg");p.execute();

(Warning --- code not tested.)

In general you should be using parameterised queries everywhere, as they're a sure-fire way to avoid SQL injection attacks, plus are usually easier and clearer. Assembling SQL queries by glueing strings together should be avoided at all costs.


Your data table has some invisible word which you can not see. Check your db file with the db tools like navicat for sqlite. Please pay attention to the error word in the table.