Ciao,
intendi questo?
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
Di solito quell'errore spunta quando stai dimenticando di passare qualche parametro nella query.
Se ad esempio la tabella nel DB ha 8 campi, tu devi eseguire una INSERT in cui indichi tutti e 8 i campi.
E se per caso usi i bind params, come nell'esempio del post, ti devi ricordare di fare il bind di tutti i parametri definiti nella query (intendo quelli il carattere dei due punti anteposto). Se ne dimentichi anche uno solo oppure ne indichi uno in più per errore, ti salta fuori quel warning.