PDO returning 0 rows on WHERE with enum
Turns out it was the foreach loop i was using to bind the parameters as seen in this issue on stackoverflow

for anyone who comes across a similar issue in the future the following will fail:

foreach($params AS $k =&gt; $v){
    $stmt-&gt;bindParam($k, $v);
}


as bindParam does not actually bind it when you call it, it just binds a link to $v so it will always be the last item it the loop. to overcome this, you need to pass the argument by reference as follows:

foreach($params AS $k =&gt; &amp;$v){
    $stmt-&gt;bindParam($k, $v);
}


notice the &amp; before $v in the foreach, cause it to work as expected.