PDO prepared statements and value list for MySQL "IN"
| From: | TK | Date: | Tue, 08 Jul 2008 16:55:57 +0000 |
| Subject: | PDO prepared statements and value list for MySQL "IN" | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-45127@lists.php.net to get a copy of this message | ||
I'd like to use a PDO prepared statement to perform a MySQL query that uses the IN function.
I.e.:
$stmt = $pdo->prepare('
select *
from mytable
where myfield IN (:contents)
);
$stmt->bindValue(':contents', $contents);
$stmt->execute();
Here's the problem:
If $contents is set to a single value, everything's fine:
$contents = 'mystring';
How can I include multiple values in here? If $contents is set to an array, PHP throws an
"Array to string conversion" notice.
i.e. $contents = array('mystring1', 'mystring2');
If $contents is set to a comma-separated list, no matches are returned (probably because the entire
"list" is being passed to MySQL as a single value, not multiple values).
I.e. $contents = 'mystring1,mystring2';
What's the proper way to do this? Can it be done? (Note that I do not know how many elements
will be in $contents ahead of time, so something like IN (:contents1, :contents2) wouldn't make
sense.)
Thanks for any help!
- TK