基于MySQL表字段名称定义PHP变量的快速方法

时间:2011-06-28 13:21:42

标签: php mysql

使用PHP从MySQL表中检索值时,如何根据MySQL表中字段的名称有效地定义一组变量?

过去我能够按照以下方式做点什么:

while ($row = mysql_fetch_array ($result, MYSQL_ASSOC)) {
    explode ($row);
    ...
}

这已经定义了一组变量,其名称与我表中的字段名称相同。

我不能为我的生活记住explode ($row)位的内容。感谢。

4 个答案:

答案 0 :(得分:3)

可能Extract

答案 1 :(得分:2)

mysql_fetch_array的结果传递到关联数组中。

有几种方法可以将关联数组中的变量转换为简单变量。最常见的方法是使用list() function。另一个是extract() function

但是,我建议你不要只使用你最初给出的关联数组。

如果您阅读了extract()的手册页,您会注意到它们会警告它存在潜在的安全风险。通常不鼓励使用它(尽管此时尚未正式弃用)。

使用list()更为常见,并不代表与extract()相同的风险,但在大多数情况下仍然没有必要。

希望有所帮助。

答案 2 :(得分:1)

您可能正在考虑list()功能。

while ($row = mysql_fetch_array ($result, MYSQL_ASSOC)) {
  list($col1, $col2, $col3) = $row;
   ...
}

// Or more concise:
while (list($col1, $col2, $col3) = mysql_fetch_array ($result, MYSQL_ASSOC)) {
   echo $col1;
   echo $col2;
   ...
}

但是,我可能不会使用list()。我更喜欢直接从关联数组中访问列$row['col1'], $row['col2'], $row['col3'],以免使用短期变量丢弃全局命名空间。

答案 3 :(得分:1)

你的意思是extract()