uso i preparedstatement solo in java, e lì il conto dei parametri devi ritornare, nel senso che se dichiaro:
codice:
VALUES (?, ?, ?); // 3 parametri
poi sotto devo valorizzare 3 parametri. Tu dichiari di voler passare 3 parametri, ma ne setti solo 2. Non so se PHP/la classe che stai usando lo faccia fare, ma comincerei col sistemare il conto.