I am trying to pass an array to $stmt->bind_param for as an IN variable. How can I do this?
$values = array(\'a\',\'b\',\'c\',\'d\');
$values
This is a scenario where doing it this way is inappropriate. You're constructing actual SQL (that's what the commas and quotes are), and passing it in as a parameter. It's basically evaluating to value3 IN ('...') where ... is the entirety of $values.
Also that's a good call about the quotes. MySQL uses single quotes.
You'll need to either build the SQL using string concatenation alone, or use more than one parameter.
EDIT
As an example:
$values = array('a','b','c','d');
$values = "'" . implode("','", $values) . "'";
$stmt->prepare('SELECT value1, value2 FROM table1 WHERE value3 IN (' . $values . ')');