试图从php中的查询结果中定义变量

时间:2012-08-08 10:18:58

标签: php variables

我正在尝试从查询结果中定义变量,但我无法设法让它工作。我试图让我的网站多语言,所以我想定义我存储在数据库中的很多文本项(标识符)。该表如下所示:

ID, Identifier, English, Dutch
1, Owned_by, "Owned by", "Eigendom van"
2, Owner_of, "Owner of", "Eigenaar van"
etc
etc

其中列标识符是我想要定义的变量,2种语言中的1种是我想要给变量的值。我已经定义了一个先前的查询,其结果是用户请求的语言,因此$ language_2是上一个查询的结果。因此,当$ language_2 =“Dutch”时,我希望使用“Dutch”列中的值来定义表中的所有记录。

当我使用下面的代码时,变量将被打印(回显)但我不能将它们用作我网站中使用的实际变量。

$sql_3 = "SELECT Identifier, ".$language_2." as Language FROM translate";
$result_3 = mysql_query($sql_3) OR die (mysql_error());
while ($row_3 = mysql_fetch_array($result_3))
{
echo "$".$row_3['Identifier']." = '".$row_3['Language']."';<BR>";
}

如何让它们真正成为我可以在我的网站中使用的变量?

3 个答案:

答案 0 :(得分:1)

在作为变量名称的字符串周围添加括号:

${$row_3['Identifier']} = $row_3['Language'];

答案 1 :(得分:0)

如果您必须使用较旧的mysql_fetch_assoc()函数,则可以使用mysql_*获取associated array,然后使用变量来获得您想要的内容

$$row_3['Identifier'] = $row_3['Language'];

答案 2 :(得分:0)

${$row_3['Identifier']} = $row_3['Language'];