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