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