在PHP PDO对象结果中调用变量

时间:2014-07-26 18:36:46

标签: php database pdo

我正在使用PHP和PDO从数据库中获取数据,但是我尝试将对象与语言变量混合时遇到了一些问题。

有不同的语言,所以我必须使用带语言的变量,请记住可能有任何语言,这就是为什么我必须使用变量。

查询工作正常,它使用语言从DB获取值,但不能回显。

请帮忙!

$language = en;

// Do select from DB
$sql_query = $db_data->prepare("SELECT id, image, ".$language."_description FROM table");
$sql_query->execute();

while($data = $sql_query->fetch(PDO::FETCH_OBJ)){
    echo $data->image; // works perfect!
    echo $data->$language."_description"; // this does not work, this is what i need
}

1 个答案:

答案 0 :(得分:3)

我想你不想要这个:

echo ($data->$language) . ("_description"); 

......但是这个:

echo $data->{$language."_description"}; 

为了戏剧性的目的,添加了括号。该功能称为variable properties

当您阅读不存在的方法属性时,您可以获得Undefined property通知以轻松发现错误。由于您没有,我建议您查看错误报告设置。

此外,您可以使用var_dump()检查变量。