使用 php 根据用户在 MYSQL 中的输入检索列名


Retrieving column name based on user input in MYSQL using php

目前我正在做一个PHP GET并在单击提交按钮后获取值。

我从提交按钮中取出了值,但我不知道如何将它们引用到列中的值。

例如,单击提交按钮后,我得到值 1。

在我的数据库中,我有 3 列

坳 1 坤 2 坂 3

 2   3  1

如何仅通过值本身来获取列名称?非常感谢!

丑陋/愚蠢,但会做你想做的事:

查询:

SELECT * FROM yourtable WHERE 1 in (col1, col2, col3, ... ,colN)

然后手动选取客户端代码中的值:

$row = mysql_fetch_assoc($result);
$matches = array_search(1, $row);
var_dump($matches);

您无法避免列出查询中的所有列,因为没有WHERE x IN (*)类型构造。

我会这样做。

获取所有表列

然后遍历结果并针对每一列运行 SELECT

$columnVsValue = array();
foreach($columns as $column) {
  $q = "SELECT id FROM table where {$column} = {$value}";
  if(TRUE) { // you have to check that query return value
    $columnVsValue[] = $column;
  }
}

我做得很快,可能有更有效的方法可以做到这一点