2

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

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

其中列标识符是我要定义的变量,两种语言中的一种是我要赋予变量的值。我已经定义了先前的查询,其结果是用户请求的语言,因此 $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>";
}

我怎样才能让它们真正成为我可以在我的站点中使用的变量?

4

3 回答 3

1

Add brackets arround the string that is the variable name:

${$row_3['Identifier']} = $row_3['Language'];
于 2012-08-08T10:21:44.997 回答
0

如果您必须使用旧函数,您可以使用mysql_fetch_assoc()获取关联数组mysql_*,然后使用变量变量来获取您想要的

$$row_3['Identifier'] = $row_3['Language'];
于 2012-08-08T10:22:57.943 回答
0
${$row_3['Identifier']} = $row_3['Language'];
于 2012-08-08T10:23:50.930 回答