【问题标题】:Retrieving column name based on user input in MYSQL using php使用php根据MYSQL中的用户输入检索列名
【发布时间】:2014-11-26 14:13:06
【问题描述】:

目前我正在执行 PHP GET 并在单击提交按钮后获取值。

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

例如,点击提交按钮后,我得到的值是 1。

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

第 1 列第 2 列第 3 列

 2   3  1

我如何仅通过值本身来获得 COLUMN 名称?非常感谢!

【问题讨论】:

  • mysqli_result -> 获取字段(php.net 链接)-> php.net/manual/en/mysqli-result.fetch-fields.php
  • 你不能...因为 RDBMS 按行而不是按列存储和搜索数据
  • 获取行作为关联数组(键将是列名)然后根据值输出键
  • 首先你必须获取我们表的所有行和所有列,然后你必须用列值检查你的值......然后你会得到列名,否则你不会得到:)

标签: php mysql get


【解决方案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 (*)-type 构造。

【讨论】:

    【解决方案2】:

    我会这样做的。

    Get all table columns

    然后循环遍历结果并为每一列运行选择

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

    我很快就完成了,可能有更有效的方法来做到这一点

    【讨论】:

      猜你喜欢
      • 2020-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-21
      • 2017-04-02
      • 2021-12-06
      • 2016-02-05
      • 1970-01-01
      相关资源
      最近更新 更多