将行的MySQL字段提取到PHP变量和数组中

时间:2011-09-03 19:02:48

标签: php mysql automation

我有一个包含大量字段和记录的表(40 +字段)。

我使用我的MySQL结果:

<?php
 $field1 = $row['field1'];
 $field2 = $row['field2'];
 $field3 = $row['field3']; 
?>

如您所见,变量名称与字段名称相同。

如何为所有字段执行此操作,而无需全部输入em?当我添加更多字段时真的很棒!

我知道eval函数,但在这种情况下我不确定如何使用它。

另外,如何生成包含结果的数组?像这样:

<?php
  $arr = array(
           'field1'=>$row['field1']
               );
?>

3 个答案:

答案 0 :(得分:4)

extract()函数正是这样做的:

extract($row);

默认情况下,它会覆盖任何现有变量(例如,如果您已经有field1变量,它将覆盖它)。您可以通过将EXTR_SKIP作为第二个参数传递来禁用它:

extract($row, EXTR_SKIP);

或者您可以为所有变量添加前缀:

extract($riw, EXTR_PREFIX_ALL, 'row');

答案 1 :(得分:4)

您可以使用extract()

extract($row);

但是,请注意不要使用此功能污染您的命名空间。假设您已经有一个名为$car的变量,并且数据库中有一个名为car的字段。你可能会在不知不觉中覆盖现有的变量!

然后,使用可能更安全:

extract($row, EXTR_SKIP); // don't extract variables that already exist in the namespace

编辑:关于编辑,您无需为结果创建数组...您的$ row数组 结果。如果你在编辑$arr['field1'] = $row['field1']中构建数组,那么为什么不完全绕过这个数组的构造而只使用原始的$row

答案 2 :(得分:2)

  

另外,如何生成包含结果的数组?

$arr = $row;