PHP:如何从MySQL查询中为变量赋值?

PHP:如何从MySQL查询中为变量赋值?,php,Php,我有一个MySQL数据库“fruits”,有10行,如下所示: id | variable | value 1 | apples | 5 2 | oranges | 6 如何有效地使用查询来分配PHP变量值,以便在其他地方使用它们: $apples=5 $oranges=6 或者换句话说,根据数据库中的“variables”列为PHP变量赋值 我能让它工作的唯一方法是: $con = mysqli_connect($servername, $username, $passw

我有一个MySQL数据库“fruits”,有10行,如下所示:

id | variable | value  
1  | apples  | 5  
2  | oranges  | 6  
如何有效地使用查询来分配PHP变量值,以便在其他地方使用它们:
$apples=5
$oranges=6

或者换句话说,根据数据库中的“variables”列为PHP变量赋值

我能让它工作的唯一方法是:

$con = mysqli_connect($servername, $username, $password, $dbname);

$sql="SELECT variable, value FROM fruits where variable = 'oranges'";
$result=mysqli_query($con,$sql);
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
$oranges = $row["value"]; 
我可以这样做10次,但这似乎很糟糕,一定有更好的方法,大概涉及某种循环。在这方面不是一个专业人士(很明显),所以我可以看到它是如何工作的完整代码将不胜感激


谢谢你的帮助

我看不出有任何理由这样做。 数组本身就是一个变量。使用$rows[2]['variable']或$rows[1]['value']访问任何单个元素都非常容易


但是如果您真的需要一些混乱,您可以将extract()和foreach循环结合起来。

这里是一个变量示例:

$sql="SELECT * FROM fruits";
$result = mysqli_query($conn,$sql);

if ($result->num_rows > 0) {

    while ($row = $result->fetch_assoc()) {
        $variable = $row["variable"];
        $$variable = $row["value"];

        echo("Name: " . ${variable} . " Value: " . $$variable . "<br>");
    }
}
$sql=“从水果中选择*”;
$result=mysqli\u查询($conn,$sql);
如果($result->num_rows>0){
而($row=$result->fetch_assoc()){
$variable=$row[“variable”];
$$变量=$行[“值”];
echo(“名称:“.${variable}.”值:“.$$variable.”
”; } }
最好的问候

也可以用这个

$con = mysqli_connect($servername, $username, $password, $dbname);

$sql="SELECT variable, value FROM fruits";
$result=mysqli_query($con,$sql);
while($row=mysqli_fetch_array($result,MYSQLI_ASSOC)){
    ${row["variable"]}= $row["value"];
}

您可能正在寻找,但在几乎所有场景中,最好使用数组。有一个数组,例如
$fruits[$row['variable']]=$row['value']
,然后使用
echo$fruits['oranges'](确保在进入循环之前定义数组,以避免未定义的变量…注意)。
提取数组_列($row,'value,'variable')
但正如@Qirel所说,最好使用数组,而不是数组。你知道数据库中值的顺序吗,比如apple,然后是orange,然后。。。