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

Php 将变量设置为sql查询的字段名,php,mysql,variables,dynamic,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['

我的目标是在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行是真正的伪部分

您想用列的名称命名一个变量吗

$$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;
    }

现在,您可以通过列名称将值回显。

是否要使用列名称命名变量

$$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;
    }

现在,您可以通过列名将值回显。

这听起来有些多余,但您可以始终使用数组搜索:

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

有关详细信息,请参见。

这听起来有些多余,但您可以始终使用数组搜索:

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

更多信息请参见。

这就是您想要的吗

$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;
}
或者只需在
foreach
循环中按您喜欢的方式使用
$column
$value


或者您是否特别想要第一列,可以通过
reset($row)访问该列$第一个键=键($row)

这就是你想要的吗

$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;
}
或者只需在
foreach
循环中按您喜欢的方式使用
$column
$value


或者您是否特别想要第一列,可以通过
reset($row)访问该列$第一个键=键($row)

也许我错了。。。但第1栏不是“名字”吗?为什么在静态地将它键入数组时动态地获取它。是否只想获取表的所有列名?(因为您使用的是mysql…)是的,我有点难以解释。我需要能够有两个变量,一个用于行的值,一个用于字段名;或者是一个包含这两个变量的数组`$firstName=['firstName','michael'];或者我需要将一个变量的名称设置为另一个变量中的字符串看起来可能已经被删除了,但是
SHOW COLUMNS
是一个sql函数。我可以试着用它来解决问题也许我错了。。。但第1栏不是“名字”吗?为什么在静态地将它键入数组时动态地获取它。是否只想获取表的所有列名?(因为您使用的是mysql…)是的,我有点难以解释。我需要能够有两个变量,一个用于行的值,一个用于字段名;或者是一个包含这两个变量的数组`$firstName=['firstName','michael'];或者我需要将一个变量的名称设置为另一个变量中的字符串看起来可能已经被删除了,但是
SHOW COLUMNS
是一个sql函数。我可以尝试处理它,使其正常工作。我收到此错误
警告:array_search()预期参数2为array,参考第8行/home/queryTest.php中给出的资源
编辑了我的答案。结果不是我们应该搜索的数组;相反,
$row
是我们需要的。我收到了这个错误
警告:array_search()希望参数2是array,在第8行的/home/queryTest.php中给出的资源
编辑了我的答案。结果不是我们应该搜索的数组;相反,
$row
是我们需要的。