Unfortunately, questions like "Please watch my code and tell me where is a bug" are sure offtopic on this site.
the only answer possible is to tell you how to debug your query and how to localize the problem.
Look, you have a query and parameters.
Try to run it with raw PDO. Does it work?
If not - try to take out your conditions (along with corresponding parameters) one by one. On which one it stopped? Can you reproduce the problem with this one?
Try to narrow your problem down as much as possible. that's the only way anyway.