0

我有一个数组: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 的产品名称,但没有得到两个名称。有什么问题?

4

1 回答 1

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();
于 2013-01-14T10:17:17.020 回答