mysql - 使用数组作为 PDO "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('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/>';
}

关于mysql - 使用数组作为 PDO "IN"查询的一部分时遇到困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6498518/

相关文章:

php - 如何根据特定条件从2个表中获取数据

MySQL:使用 ORDER BY 性能极慢

mysql - 绕过 MySQL "Can' t 重新打开表"错误

PHP 分配链接中的位置

php - 我可以在 PHP 中混合使用 MySQL API 吗?

php - 如何在php中的pdo准备中查找rowCount

php - 在带有 PHP5.3.6 的 LAMP 上启用 MsSQL PDO 驱动程序

sql - 如何匹配复合类型数组中的元素?