使用PDO检索存储在数据库中的数组

时间:2013-01-14 10:04:46

标签: php mysql pdo

我有一个数组:productid = [1,2]。现在我想使用这部分代码从产品表中获取数据:

$sql = 'SELECT name FROM product WHERE id=:id';
$s = $pdo->prepare($sql);
foreach($productid as $id)
{
  $s->bindValue(':id', $id);
  $s->execute();
}

当我返回姓名时如下:

foreach($s as $row)
{
  $name[] = array(
      'name' => $row['name']
  );
}

我刚刚获得了第二个ID的产品名称,但没有得到这两个名称。 有什么问题?

1 个答案:

答案 0 :(得分:1)

  

我刚刚获得了第二个ID的产品名称,但没有得到这两个名称。有什么问题?

你必须将你的$name[] = $row['name'];(是的,那是正确的符号)代码放在foreach循环中,以及实际获取数据的代码。

您还可以形成一个IN()语句,该语句应该看起来像IN (?,?,?,?)并在一个查询中运行它。这样的事情(未经测试):

$in   = trim(str_repeat('?,',count($productid)).",");
$sql  = "SELECT name FROM product WHERE id IN ($id)";
$stmt = $db->prepare($sql);
$stmt->execute($productid);
$name = $stmt->fetchAll();
相关问题