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


Trying to define variables from the results of a query in php

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

ID, Identifier, English, Dutch
1, Owned_by, "Owned by", "Eigendom van"
2, Owner_of, "Owner of", "Eigenaar van"
etc
etc
其中列标识符是我要

定义的变量,两种语言中的 1 种是我要为变量提供的值。我已经定义了一个上一个查询,其结果是用户请求的语言,因此 $language_2 是上一个查询的结果。因此,当 $language_2 = "荷兰语"时,我希望使用"荷兰语"列中的值定义表中的所有记录。

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

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

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

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

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

如果必须使用较旧的mysql_*函数,则可以使用 mysql_fetch_assoc() 来获取关联的数组,然后使用变量变量来获取所需的内容

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