php变量的名称和值作为列值

时间:2018-08-22 08:33:00

标签: php mysql

我有一列名为what的值,如下所示:
earth sun sea sky ...

我需要创建名为该值的php变量,并赋予该变量相同的值。

例如:

$earth = 'earth';
$sun = 'sun';
...

我尝试过:

$st = $db->prepare("select what from bdef");
$st->execute();
while ($row = $st->fetch()) {
    ${$row['what']} = $row['what'];
}

echo $earth;

结果:Unknown variable...

1 个答案:

答案 0 :(得分:0)

只使用extract在我的示例代码中,我使用了一个函数,只是将其全部包含在函数的范围内,而不会在名称空间中散乱全局变量。

function dostuff($row) {
  extract($row);
  echo $earth;
}
$st = $db->prepare("select what from bdef");
$st->execute();
while ($row = $st->fetch()) {
    dostuff($row);
}