【问题标题】:Accessing mySQL columns dynamically using PHP使用 PHP 动态访问 mySQL 列
【发布时间】:2022-11-15 11:57:33
【问题描述】:

我从数据库中拉出一行,我想通过动态变量访问它

$prop = "theProp";

$test0 = $row["theProp"]; // Works fine
$test1 = $row->{$prop}; // Doesn't work
$test2 = $row->$prop; // Doesn't work

我到处看了看,显然做了一些愚蠢的事情,请有人赐教。

【问题讨论】:

  • 像任何其他数组一样使用$row[$prop]。你为什么使用->

标签: php dynamic


【解决方案1】:

你这么近,只需将$row["theProp"] 中的"theProp" 替换为$prop

所以这应该有效:

$prop = "theProp";

$test3 = $row[$prop];

在您的情况下,$row 是一个数组,而不是一个对象,这就是为什么 $row->$prop 不起作用。

【讨论】:

    【解决方案2】:

    只需尝试将数组转换为对象。以下工作正常:

    $array['one'] = "number 1, ";
    $array['two'] = "number 2, ";
    
    $object = (object) $array;
    
    echo $object->one;
    echo $object->two;
    
    
    
    Output: number 1, number 2, 
    

    【讨论】:

      【解决方案3】:

      或者,当您从数据库中提取数据时,您可以使用fetch_object()/mysqli_fetch_object()。你的 $row 是一个数组而不是一个对象,这就是你的代码不起作用的原因。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-12
        • 2017-03-02
        • 2013-06-04
        • 1970-01-01
        • 1970-01-01
        • 2018-01-13
        相关资源
        最近更新 更多