将变量设置为sql查询的字段名称

时间:2013-01-11 18:08:36

标签: php mysql variables dynamic

我的目标是将变量设置为mysql查询中的字段名称。

下面的一些伪代码
1.    $query = "SELECT firstName, lastName FROM users WHERE userName = 'mhopkins321';"
2.    $result = mysql_query($result);
3.    $while($row = mysql_fetch_assoc($result)){
4.         $column1 = name_of_column($row['firstName']);
5.    }
6.    echo $column1

      //Would return the string

      firstName

显然第4行是真正的伪部分

3 个答案:

答案 0 :(得分:1)

您想要使用列名命名变量吗?

$$row['firstName'] = $row['firstName'];

另一种方式是这样的:

    $query = "SELECT firstName, lastName FROM users WHERE userName = 'mhopkins321'";
    $result = mysql_query($result);
    $row = mysql_fetch_assoc($result);

    foreach($r as $key=>$value){
        $$key = $value;
    }

现在,您可以按列名称回显值。

答案 1 :(得分:1)

这听起来多余,但你总是可以使用array_search:

while($row = mysql_fetch_assoc($result)){
    $value = $row['firstName'];
    $key = array_search($value, $row);
}

有关array_search的更多信息,请参阅

答案 2 :(得分:1)

这就是你要追求的吗?

$query = "SELECT firstName, lastName FROM users WHERE userName = 'mhopkins321';"
$result = mysql_query($result);

$all_results = array();
$while($row = mysql_fetch_assoc($result)) {
     $formatted_row = array();
     foreach ( $row as $column => $value ) {
         $formatted_row[] = array($column, $value);
     }
     $all_results[] = $formatted_row;
}

或者只是在$column循环内使用$valueforeach

或者您是否特别想要第一列,可以使用reset($row); $first_key = key($row);

进行访问