First of all, SQLite doesn't care whether your blob is a valid PNG image.
Second, please try to understand what you are doing.
"Someone advised me to use byte instead of a string or etc" is not a matter of opinion: the function you are trying to call is declared as int sqlite3_bind_blob(sqlite3_stmt*, int, const void*, int n, void(*)(void*)), you cannot pass what you want as a parameter.
Why are you goofing around with DllImport instead of using the proper .Net wrapper (system.data.sqlite.org)? Code examples like http://stackoverflow.com/questions/625029/how-do-i-store-and-retrieve-a-blob-from-sqlite are easy to find.
You're pretty rude and thats putting it politely. Dont assume I haven't read the ******* manual because I have (I am aware of a much simpler way to achieve what I am trying to do, ie, use system.data.sqlite). I am using Unity3d where you cant use system.data.sqlite.org so you are forced to use the C API, this may have changed in the latest release of Unity3d though.
I'll accept that you (incorrectly) assumed my ignorance but I dont accept your aggressive condescending demeanour. You were never obliged to reply to my thread so there's no reason to be angry and I'm telling you, dont reply to my threads in the future.