Mysql 难以将数组用作PDO“IN”查询的一部分

Mysql 难以将数组用作PDO“IN”查询的一部分,mysql,pdo,sql-in,Mysql,Pdo,Sql In,我正在尝试使用数组查询MySQL数据库 $array=array('Group1','Group2','Group3'); $inQuery=implode(",",$array); //$inQuery='Group1'; //This returns the expected result, but is obviously not an array $data=array($inQuery); try { $STH = $this->DBH->prepare('SELEC

我正在尝试使用数组查询MySQL数据库

$array=array('Group1','Group2','Group3');
$inQuery=implode(",",$array);
//$inQuery='Group1'; //This returns the expected result, but is obviously not an array

$data=array($inQuery);
try {
  $STH = $this->DBH->prepare('SELECT GroupName FROM myTable WHERE GroupName IN(?)');            
  $STH->execute($data);
  /* Output results*/
}
catch(PDOException $e) { /*Panic!*/ }

我没有收到任何错误消息,只有0个结果。任何帮助都将不胜感激

您可以尝试这种方法-未经测试-:

// To fetch your array data
$array=array('Group1','Group2','Group3');
try {
  $STH = $this->DBH->prepare("SELECT GroupName FROM myTable WHERE GroupName IN (?)");            
  $STH->execute($array);
  while($lines=$STH->fetch($this->DBH->FETCH_OBJ))
{
        echo $lines->GroupName.'<br />';
}

}
catch(PDOException $e) { 
/*Panic!*/ 
echo 'ERR: ' .$e->getMessage().'<br/>';
}

以防万一其他人遇到这个

这似乎是一个逃逸内爆阵列的问题

$array=array('Group1','Group2','Group3');
$inQuery=implode(",",$array);
$inQuery="'".$inQuery."'"; //Solved the issue.

$data=array();
try {
  $STH = $this->DBH->prepare('SELECT GroupName FROM myTable WHERE GroupName IN($inQuery)');            
  $STH->execute($data);
  /* Output results*/
}
catch(PDOException $e) { /*Panic!*/ }
SQL IN子句不支持对值列表使用单个变量-您需要什么?对于每个数组值。