我从MySql数据库中收集了大量数据字符串。数据必须在我网站上的各个不同位置使用。所以我希望将从我的数据库收集的每个字符串分配给它自己的变量。我不想一遍又一遍地写同一段代码。因此,我想使用数组来收集所有字符串并在过程中创建特定变量。以下是我所拥有的。
$tableName = "fruits";
$variablesArray = array(
"Apple",
"Banana",
"Coconut",
);
foreach($variablesArray as $val) {
$query = "SELECT * FROM {$tableName} WHERE ID = '{$val}'";
$result = mysqli_query($conn, $query) or die('error');
while($data = mysqli_fetch_array($result)) {
For ($n = 0; $n < 1; $n++){
${'$val'} = $data["COLORS"];
}
}
echo ${'$val'};
echo "</br>";
}
在上面,我使用数组中数据库的ID来从我的数据库中收集数据。这与“绿色”,“黄色”,“棕色”相呼应。
但我想要的是制作三个变量:
以上代码不会创建这些代码。我不确定如何使用$ {'$ val'}来实现这一目标。我也试过创建关联数组,但是我无法得到我想要的东西。我希望有人能指出我正确的方向。谢谢!
答案 0 :(得分:1)
您的问题(不一定是唯一的问题)在于${'$val'};
单引号字符串不会解析变量,因此您的变量实际上称为'$val'
使用$$val
${"$val"};
也有效,因为双引号字符串会解析变量。但是在这样的简单情况下,没有必要使用引号,因为$val
已经是一个字符串,并且不需要使用花括号,因为没有其他部分需要将变量与变量分开