PDO prepared statements and value list for MySQL "IN"

From: 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

« previous php.db (#45127) next »