in effetti hai ragione, ma non pensavo assolutamente che sqlite_error_string non stampasse nulla, ma pensavo che si comportasse come tutti i metodi "simili".

Codice PHP:
if($insert === false) echo sqlite_error_string(sqlite_last_error($conn)); 
restituisce

codice:
SQL logic error or missing database
ottimo! è già un passo avanti
il che ci riporta alla domanda iniziale: "perché una pagina PHP riesce ad eseguire la query ed un'altra no?" Il database comunque c'è (lo leggo da un'altra pagina)